如何在 Spark 中使用 Python 查找 DataFrame 中的分区数以及如何在 Spark 中使用 Python 在 DataFrame 中创建分区

Posted

技术标签:

【中文标题】如何在 Spark 中使用 Python 查找 DataFrame 中的分区数以及如何在 Spark 中使用 Python 在 DataFrame 中创建分区【英文标题】:How to find number of partitions in a DataFrame using Python in spark And how to create Partitions in a DataFrame with Python in spark 【发布时间】:2021-08-20 13:09:09 【问题描述】:

我有一个名为 df 的 DataFrame,我想知道当我们将数据读入 DataFrame 时我可以创建分区

我还想了解如何找到 DataFrame 中的分区数。 我搜索了多个答案,显示以下内容 df.rdd.getNumPartitions() 但默认情况下它只返回 1。

我尝试coalese()repartition 来更改分区数。

请帮忙

【问题讨论】:

【参考方案1】:

使用 DataFrameReader 将任何文件作为数据帧读取时,我们没有指定分区数量的选项。 Here 您可以阅读有关在读取时创建的默认分区数,或者在将文件读取为 RDD 时更改分区。

使用 repartition() 可以增加/减少分区数,但使用 coalesce 可以减少分区数。

您可能错过了将重新分区的数据帧重新分配给变量,这就是显示前一个分区的原因。

df = spark.read.csv('file.csv')
df = df.repartition(10) # reassign to any variable. dataframes are immutable
# Now check number of partitions
df.rdd.getNumPartitions()

【讨论】:

以上是关于如何在 Spark 中使用 Python 查找 DataFrame 中的分区数以及如何在 Spark 中使用 Python 在 DataFrame 中创建分区的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Spark/Scala 中查找具有许多空值的列

Spark Python/SQL - 如何使用独特的组合进行分组

如何在 spark sql 的配置单元上下文对象中查找已登录/已连接/当前用户?

Spark [Python] - 在 Windows 中读取本地文件

如何使用 Spark 查找中位数和分位数

如何在 Spark 中找到分组数据的准确中位数