我有dataframe
几行。我可以dataframe
使用以下代码循环遍历它:
for row in df.rdd.collect():
但这不会并行工作吗?所以我想要的是映射每一行并将其传递给 UDF 并根据行中的值返回另一个新的数据帧(来自数据库)。
我试过 df.rdd.map(lambda row:read_from_mongo(row,spark)).toDF()
但我得到了这个错误:
_pickle.PicklingError:无法序列化对象:异常:您似乎正试图从广播变量、操作或转换中引用 SparkContext。SparkContext 只能在驱动程序上使用,不能在它在工作人员上运行的代码中使用。有关详细信息,请参阅 SPARK-5063。
如何dataframe
并行循环 a 并保持dataframe
每一行的返回?