PySpark:获取特定 RDD 分区的元素
PySpark: Taking elements of a particular RDD partition
我正在尝试 print/take 特定分区的元素。在 ,我找到了一种使用以下代码在 Scala 中执行此操作的优雅方法:
distData.mapPartitionsWithIndex( (index: Int, it: Iterator[Int]) =>it.toList.map(x => if (index ==5) {println(x)}).iterator).collect
我正在努力将其转换为 Python,有人可以帮助我吗?
P.S:此外,与上述解决方案不同,我只想获取分区的前 5 个元素,而不是全部打印出来。
您可以:
from itertools import islice
rdd.mapPartitions(lambda it: islice(it, 0, 5))
或
rdd.mapPartitionsWithIndex(lambda i, it: islice(it, 0, 5) if i == x else [])
我正在尝试 print/take 特定分区的元素。在
distData.mapPartitionsWithIndex( (index: Int, it: Iterator[Int]) =>it.toList.map(x => if (index ==5) {println(x)}).iterator).collect
我正在努力将其转换为 Python,有人可以帮助我吗?
P.S:此外,与上述解决方案不同,我只想获取分区的前 5 个元素,而不是全部打印出来。
您可以:
from itertools import islice
rdd.mapPartitions(lambda it: islice(it, 0, 5))
或
rdd.mapPartitionsWithIndex(lambda i, it: islice(it, 0, 5) if i == x else [])