如何在 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 Python/SQL - 如何使用独特的组合进行分组
如何在 spark sql 的配置单元上下文对象中查找已登录/已连接/当前用户?