我想更多地了解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)
答案 0 :(得分:6)
您正在寻找glom功能:
glom(self):返回通过将每个分区中的所有元素合并到列表中而创建的RDD。
a = sc.parallelize(range(10), 5)
a.glom().collect()
#output:[[0, 1], [2, 3], [4, 5], [6, 7], [8, 9]]
答案 1 :(得分:0)
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("=====")})
这样可以查看数据是如何分区的