【发布时间】:2019-05-08 11:06:23
【问题描述】:
我是 Hadoop 框架的新手,我想将 4 个 CSV 文件合并到一个文件中。
所有 4 个 CSV 文件的标题相同,顺序也相同。
【问题讨论】:
标签: hadoop apache-pig
我是 Hadoop 框架的新手,我想将 4 个 CSV 文件合并到一个文件中。
所有 4 个 CSV 文件的标题相同,顺序也相同。
【问题讨论】:
标签: hadoop apache-pig
我不认为 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
【讨论】:
尝试使用 getmerge 实用程序合并 csv 文件 例如,您有几个 EMP_FILE1.csv EMP_FILE2.csv EMP_FILE3.csv 放置在 hdfs 上的某个位置。您可以合并所有这些文件,并可以将合并文件放在某个新位置。
hadoop fs -getmerge /hdfsfilelocation/EMP_FILE* /newhdfsfilelocation/MERGED_EMP_FILE.csv
【讨论】: