【问题标题】:Is one parquet files under the parquet folder a partition?parquet文件夹下的一个parquet文件是一个分区吗?
【发布时间】:2020-07-10 01:31:59
【问题描述】:

我将数据框保存为镶木地板格式

df.write.parquet('/my/path')

查看HDFS时,可以看到parquet目录/my/path下有10个part-xxx.snappy.parquet文件

我的问题是:一个 part-xxx.snappy.parquet 文件是否对应于我的数据框的一个分区?

【问题讨论】:

  • 我不确定这个问题是否可能重复,如果已经有类似问题,请告诉我

标签: apache-spark pyspark apache-spark-sql parquet partition


【解决方案1】:

是的,part-** 文件是在写入 HDFS 时基于数据帧中的 number of partitions 创建的。

在数据框中检查number of partitions

df.rdd.getNumPartitions()

为了控制写入文件系统的文件数量,我们可以根据我们的要求使用.repartition (or) .coalesce() (or) dynamically

【讨论】:

    【解决方案2】:

    是的,这会为每个 Spark 分区创建一个文件。

    注意,您也可以通过某些属性对文件进行分区:

    df.write.partitionBy("key").parquet("/my/path")
    

    在这种情况下,Spark 将为每个 parquet-partition 创建多达 Spark-partition 数量的文件。在这种情况下减少文件数量的常用方法是在写入之前通过键对数据进行重新分区(这有效地为每个分区创建一个文件)。

    【讨论】:

      猜你喜欢
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 2018-08-09
      • 2016-04-19
      • 1970-01-01
      • 2017-12-02
      • 1970-01-01
      • 2021-09-27
      相关资源
      最近更新 更多