gpt4 book ai didi

apache-spark - Spark Parquet 分区 : How to choose a key

转载 作者:行者123 更新时间:2023-12-04 14:23:02 28 4
gpt4 key购买 nike

我发现默认情况下,Spark 似乎写了很多小的 parquet 文件。我认为如果我使用分区来减少这种情况可能会更好?

但是如何选择分区键呢?例如,对于我经常按 ID 查询的用户数据集,我是否按 id 进行分区? ?但我在想,在这种情况下,它会为 1 个用户创建 1 个 Parquet 文件吗?

如果我经常按 2 个键查询,但只查询 1 个或另一个而不是同时查询,那么按两个键进行分区有用吗?例如,假设我通常通过 id 查询和 country , 我用 partitionBy('id', 'country') ?

如果没有查询数据的特定模式但想限制文件数量,我是否使用 repartition然后?

最佳答案

分区为分区字段的每个值创建一个子目录,因此如果您按该字段进行过滤,它不会读取每个文件,而是仅读取适当子目录中的文件。

  • 数据太大时应该分区你通常
    一次处理数据的一个子集。
  • 您应该按双方都需要过滤的字段进行分区
    经常 具有低基数,即:它将创建一个
    相对较少的目录数量相对较多
    每个目录的数据。

  • 例如,您不想按唯一 ID 进行分区。它会创建很多目录,每个目录只有一行;当您需要选择多个 id 时,这是非常低效的。

    如果您正在处理时间序列(例如每日转储数据)、地理(国家、分支机构等)或分类法(对象类型、制造商等),一些典型的分区字段可能是日期。

    关于apache-spark - Spark Parquet 分区 : How to choose a key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49705277/

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