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

Posted

技术标签:

【中文标题】在 PySpark RDD 中,如何使用 foreachPartition() 打印出每个分区的第一条记录?【英文标题】:In PySpark RDD, how to use foreachPartition() to print out the first record of each partition? 【发布时间】:2017-09-04 04:02:15 【问题描述】:

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

【问题讨论】:

【参考方案1】:

你可以这样做:

def f(iterator):
   print(iterator.next()) 

def f(iterator):
   print(list(iterator)[0]) 

然后,您可以将上述函数之一应用于 RDD,如下所示:

rdd1 = sc.parallelize([1, 2, 3, 4, 5])
rdd1.foreachPartition(f)

请注意,这将打印在每个 spark 工作人员中,因此您应该访问工作人员的日志以查看结果。

有关更多信息,请查看文档here

【讨论】:

以上是关于在 PySpark RDD 中,如何使用 foreachPartition() 打印出每个分区的第一条记录?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Pyspark 组合两个 Dstream(类似于普通 RDD 上的 .zip)

如何在 PySpark 中获得不同的字典 RDD?

如何使用 Pyspark 将一个 rdd 映射到另一个?

pyspark 如何像在 scala .drop 中一样删除 rdd 列

在 pyspark 中合并两个 RDD

如何在pyspark中标准化RDD?