【问题标题】:How to merge CSV files in Hadoop?如何在 Hadoop 中合并 CSV 文件?
【发布时间】:2019-05-08 11:06:23
【问题描述】:

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

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

【问题讨论】:

    标签: hadoop apache-pig


    【解决方案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 
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-03-12
        • 2016-12-30
        • 1970-01-01
        • 2011-03-19
        • 1970-01-01
        • 2012-09-17
        • 2014-01-07
        • 2011-01-31
        • 2011-01-26
        相关资源
        最近更新 更多