如何在Hadoop中合并CSV文件?

时间:2018-12-06 17:24:36

标签: hadoop apache-pig

我是Hadoop框架的新手,我想将4个CSV文件合并为一个文件。

所有4个CSV文件都具有相同的标题,并且顺序也相同。

2 个答案:

答案 0 :(得分:1)

我不认为Pig STORE提供这种功能。

您可以使用Spark的coalesce(1)函数,但几乎没有理由这样做,因为几乎所有的Hadoop处理工具都喜欢读取目录,而不是文件。

理想情况下,无论如何,您最好不要将CSV长期存储在Hadoop中,而应将其转换为ORC或Parquet作为列数据。尤其是如果您已经开始阅读CSV时,请不要再次输出CSV。


如果该想法是产生一个CSV以便以后下载,那么我建议使用Hive + Beeline做到这一点

这会将结果存储到本地文件系统中的文件中。

beeline -u 'jdbc:hive2://[databaseaddress]' --outputformat=csv2 -f yourSQlFile.sql > theFileWhereToStoreTheData.csv 

答案 1 :(得分:0)

尝试使用getmerge实用工具合并csv文件 例如,您有几个EMP_FILE1.csv EMP_FILE2.csv EMP_FILE3.csv放在hdfs上的某个位置。您可以合并所有这些文件,并将合并文件放置在新位置。

hadoop fs -getmerge / hdfsfilelocation / EMP_FILE * /newhdfsfilelocation/MERGED_EMP_FILE.csv