在 pyspark RDD 上显示分区

Posted

技术标签:

【中文标题】在 pyspark RDD 上显示分区【英文标题】:Show partitions on a pyspark RDD 【发布时间】:2015-03-15 00:58:12 【问题描述】:

pyspark RDD 文档

http://spark.apache.org/docs/1.2.1/api/python/pyspark.html#pyspark.RDD

不显示任何方法来显示 RDD 的分区信息。

有什么方法可以在不执行额外步骤的情况下获取该信息,例如:

myrdd.mapPartitions(lambda x: iter[1]).sum()

上述方法确实有效..但似乎需要额外的努力。

【问题讨论】:

【参考方案1】:

我错过了:很简单:

rdd.getNumPartitions()

不习惯 java-ish getFooMethod() 了;)

更新:添加来自@dnlbrky 的评论:

dataFrame.rdd.getNumPartitions()

【讨论】:

DataFrames 是在 Spark 1.3 中引入的,通常用于代替 RDD。对于那些阅读此答案并试图获取 DataFrame 的分区数的人,您必须先将其转换为 RDD:myDataFrame.rdd.getNumPartitions()【参考方案2】:

OP 没有指定他想为分区获取哪些信息(但似乎对分区的数量很满意)。

如果您要查找的是每个分区中的元素数(如此处所示),则以下解决方案可以正常工作: https://gist.github.com/venuktan/bd3a6b6b83bd6bc39c9ce5810607a798

【讨论】:

以上是关于在 pyspark RDD 上显示分区的主要内容,如果未能解决你的问题,请参考以下文章

如何从 pyspark rdd 或分区中确定原始 s3 输入文件名

PySpark 重新分区 RDD 元素

如何在pyspark中查看RDD中每个分区的内容?

计算每个 pyspark RDD 分区中的元素数

如何更改pyspark中的列元数据?

在 PySpark RDD 中,如何使用 foreachPartition() 打印出每个分区的第一条记录?