2016-05-06 32 views
0

我正在更改hdfs目录结构。 目前的一个情况如下:在hdfs中移动和合并目录

.../customers/customers1/2016-05-16-10/lots_of_files1.csv 
.../customers/customers2/2016-05-16-10/lots_of_files2.csv 
.../customers/customers3/2016-05-16-10/lots_of_files1.csv 
.../customers/customers4/2016-05-16-10/... 
.../customers/customers5/2016-05-16-10/... 
.../customers/customers6/2016-05-16-10/... 
.../customers/customers7/2016-05-16-10/... 

我想摆脱的客户(1-7):

.../customers/2016-05-16-10/lots_of_files1.csv 
.../customers/2016-05-16-10/lots_of_files2.csv 
.../customers/2016-05-16-10/lots_of_files1(1).csv 

我想用毒蛇咬伤蟒蛇HDFS库,但很多边缘出现以下情况: 1.同一日期可能会多次出现。 2. csv的名称可能会多次出现,但它的数据是不同的,并且必须移动。

你如何以最干净的方式实现它?

回答

0

如果您不担心保留文件名,您可以轻松使用Apache Drill。有些东西像 Apache Drill支持通过SQL读取和写入文件。 一些东西一样

create table dfs.`/myfolder/customers/2016-05-16-10` select * from dfs.`/myfolder/customers` where dir1 = '2016-05-16-10'; 

所有的文件/ */2016-05-16-10将被写入到目标表中。

https://drill.apache.org/docs/

+0

它如何处理具有相同名称的csvs? @vgunnu – TheSilence

+0

将该文件夹中的所有文件合并到新文件中。与Hive类似 – vgunnu