在Hadoop中合并CSV文件

时间:2017-09-30 13:51:57

标签: csv hadoop merge apache-pig

我是Hadoop框架的新手,如果有人能通过这个方式走我,我会非常感激。

我正在尝试合并两个.csv文件。

两个文件具有相同的标题,顺序相同,等等。

问题是我不知道如何将这些文件合并为一个,然后清理空行和未使用的列。

2 个答案:

答案 0 :(得分:2)

  

两个文件具有相同的标题顺序相同等

由于文件相同,您可以将它们上传到同一目录。

myObject.message

HDFS将原则上将这些视为单个文件的一部分"如果您从hdfs dfs -mkdir -p /path/to/input hdfs dfs -put file1.csv /path/to/input hdfs dfs -put file2.csv /path/to/input

读取

注意,您希望在以这种方式将标题放入HDFS之前从两个文件中删除标题。

另一种选择是在本地连接文件。 (再次,首先删除标题,或者至少删除除第一个文件之外的所有标题)

hdfs:///path/to/input

之后,使用您知道的任何Hadoop工具来读取文件。

答案 1 :(得分:0)

由于它们具有相同的结构,因此使用PIG将它们加载到2个关系中,然后加载UNION这两个关系。最后,您可以过滤符合特定条件的记录。我假设文件每个都有2个字段,以简化。

A = LOAD '/path/file1.csv' USING PigStorage(',') AS (a1:chararray;a2:chararray);
B = LOAD '/path/file2.csv' USING PigStorage(',') AS (b1:chararray;b2:chararray);
C = UNION A,B;
D = FILTER C BY (C.$0 is NULL OR C.$1 is NULL) <-- If first or second column is null filter the record.
DUMP D;