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

Mus*_*Ela 2 apache-spark rdd pyspark

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

Moh*_*OUI 7

你可以这样做:

def f(iterator):
   print(iterator.next()) 
Run Code Online (Sandbox Code Playgroud)

或者

def f(iterator):
   print(list(iterator)[0]) 
Run Code Online (Sandbox Code Playgroud)

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

rdd1 = sc.parallelize([1, 2, 3, 4, 5])
rdd1.foreachPartition(f)
Run Code Online (Sandbox Code Playgroud)

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

有关更多信息,请查看此处的文档