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

Posted

技术标签:

【中文标题】如何在pyspark中查看RDD中每个分区的内容?【英文标题】:How to see the contents of each partition in an RDD in pyspark? 【发布时间】:2015-12-11 04:54:55 【问题描述】:

我想进一步了解 pyspark 如何对数据进行分区。我需要一个这样的函数:

a = sc.parallelize(range(10), 5)
show_partitions(a)

#output:[[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]] (or however it partitions)

【问题讨论】:

【参考方案1】:

glom 函数正是您要寻找的:

glom(self):返回通过将每个分区内的所有元素合并到一个列表中创建的 RDD。

a = sc.parallelize(range(10), 5)
a.glom().collect()
#output:[[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]

【讨论】:

【参考方案2】:
val data = List((1,3),(1,2),(1,4),(2,3),(3,6),(3,8))
val rdd = sc.parallelize(data)
rdd.glom().collect()
         .foreach(a => 
                         a.foreach(println);
                         println("====="))

这样可以查看数据是如何分区的

【讨论】:

以上是关于如何在pyspark中查看RDD中每个分区的内容?的主要内容,如果未能解决你的问题,请参考以下文章

PySpark 重新分区 RDD 元素

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

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

PySpark|RDD编程基础

spark 中如何查看单个RDD分区的内容(创建分区,查看分区数)

如何查看spark中rdd的内容