我在Impala中有一个外部表,它由两列划分,因此HDFS目录在进入实际数据文件之前有两个级别的目录。表在元存储中已损坏,无法查询。我只想将单个(~10k)文件复制到一个目录中,这样我就可以删除损坏的表,删除现有的目录,然后在Impala中将加载数据返回到表中。问题是,我无法找到只复制文件的方法,因为加载数据不支持子目录加载,所以它们最终都位于一个目录中。
该结构看起来如下:
在mysub1和mysub2级别上有数百个目录
我已经得到了正确的列表,只有以下文件:
hadoop -lsr /myroot/ .parq
但我不知道如何将这个列表的输出传递给
-cp {mylist} /mynewdir/
发布于 2015-01-28 21:52:27
通配符应该能做到这一点:
hdfs dfs -cp /myroot/*/*/*.parq /mynewdir注意,如果您不需要原始位置的文件,那么hdfs dfs -mv就会快得多。
https://stackoverflow.com/questions/28200773
复制相似问题