【问题标题】:use s3-dist-cp to merge parquet files使用 s3-dist-cp 合并 parquet 文件
【发布时间】:2017-12-15 18:15:57
【问题描述】:

只是想知道是否可以使用 s3-dist-cp 工具来合并 parquet 文件(快速压缩)。我尝试使用“--groupBy”和“--targetSize”选项,它确实将小文件合并成更大的文件。但是我无法在 Spark 或 AWS Athena 中读取它们。 在 aws athena 中,我收到以下错误:

HIVE_CURSOR_ERROR: Expected 246379 values in column chunk at s3://my_analytics/parquet/auctions/region=us/year=2017/month=1/day=1/output123 offset 4 but got 247604 values instead over 1 pages ending at file offset 39

This query ran against the "randomlogdatabase" database, unless qualified by the query. Please post the error message on our forum or contact customer support with Query Id: 4ff77c55-3b69-414d-8fd9-a3d135f5ff2f.

感谢任何帮助。

【问题讨论】:

    标签: amazon-emr parquet s3distcp


    【解决方案1】:

    Parquet 文件具有重要的结构。 This page 详细介绍了它,但结果是元数据像 zip 文件一样存储在最后,连接 Parquet 文件会破坏它们。要合并 Parquet 文件,您需要使用能够理解 Parquet 文件格式的 Spark 之类的工具。

    【讨论】:

    • 是的,我就是这么想的。感谢您的信息!
    【解决方案2】:

    根据AWS docs

    S3DistCp 不支持 Parquet 文件的串联

    请注意,该网站上的建议是在写入之前将文件读入 Spark DataFrame,然后再读入 coalesce(n),这对于大型数据集可能会带来重大挑战,正如 API docs 中所警告的那样:

    如果你正在做一个剧烈的合并,例如对于 numPartitions = 1,这可能会导致您的计算发生在比您喜欢的更少的节点上(例如,在 numPartitions = 1 的情况下为一个节点)。

    【讨论】:

      猜你喜欢
      • 2017-12-14
      • 2020-07-23
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 1970-01-01
      • 2019-08-28
      • 2021-02-03
      • 2021-02-20
      相关资源
      最近更新 更多