gpt4 book ai didi

apache-spark - Parquet 如何确定使用哪种编码?

转载 作者:行者123 更新时间:2023-12-02 18:37:22 25 4
gpt4 key购买 nike

上下文:

  • 我有两个相同的数据集(比如左和右),每个数据集中有 112 个 Parquet 文件。
  • 这些 Parquet 文件是使用 Hive 通过转换分隔的平面文件创建的。
  • 用于创建分隔平面文件的过程在左右进程之间略有不同。
  • 我注意到两个数据集之间存在显着的大小差异,即使它们中的内容完全相同。左侧数据集为 400GB,右侧数据集为 420GB。
  • 当我使用 parquet-tools 检查 Parquet 模式时,我注意到左右数据集使用了不同的编码,如下所示(对于一列):

  • 左:
    column_a:  INT64 SNAPPY DO:0 FPO:4 SZ:5179987/6161135/1.19 VC:770100 ENC:PLAIN,RLE,BIT_PACKED

    右:
    column_a:  INT64 SNAPPY DO:0 FPO:4 SZ:3040269/5671813/1.87 VC:782499 ENC:BIT_PACKED,PLAIN,RLE,PLAIN_DICTIONARY

    我的问题:

    Parquet 如何确定要使用的编码类型以及什么可能使 Parquet 选择不同的编码?我们可以使用 Hive/Spark 配置来控制它吗?

    最佳答案

    我认为邮件列表消息here与回复 here有我所知道的最佳答案。简而言之,您无法直接控制 Parquet 用于任何给定列的编码。有些事情可能有助于对其进行一些改进,例如指定您希望编写 Parquet 版本 2 文件而不是 Parquet 版本 1 文件,但这并不是精确控制。可能有一些可以做的事情,但它可能涉及深入研究 Parquet 实现的内部结构。

    关于apache-spark - Parquet 如何确定使用哪种编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61377868/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com