我是Hadoop框架的新手,我想将4个CSV文件合并为一个文件。
所有4个CSV文件都具有相同的标题,并且顺序也相同。
答案 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