spark如何查看rdd每个分区中的数据

qvsjd97n  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(1078)

我现在想测试一下 repartition() 以及 coalesce() 我自己,尤其是在一个不太常见的情况下 numsPartion 保持不变,我希望看到调用相同分区号的重新分区仍然会对所有数据进行完全洗牌。然后我意识到我缺少检查每个分区的确切内容的方法。我只是使用瘫痪列表作为我的rdd样本。有没有什么方法可以检查每个分区的内容,以便验证我的怀疑?哦,也许还有其他更新的api可以满足这个目标?提前谢谢。

e0bqpujr

e0bqpujr1#

你可以用 RDD.glom() ,其中
返回通过将每个分区中的所有元素合并到一个数组中而创建的rdd。
例如,可以使用以下方法检查以下8分区rdd:

val rdd = sc.parallelize(Seq(1,2,3,4,5,6,7,8,9,10))
rdd.glom().collect()

//Result
res3: Array[Array[Int]] = Array(Array(1), Array(2), Array(3), Array(4, 5), 
                                Array(6), Array(7), Array(8), Array(9, 10))

相关问题