【发布时间】:2019-12-29 22:53:53
【问题描述】:
我有一个dataframe 有几行。我可以使用此代码循环通过此dataframe:
for row in df.rdd.collect():
但这不会并行工作吧?所以我想要的是映射每一行并将其传递给 UDF 并根据行中的值返回另一个新数据帧(来自数据库)。
我试过了 df.rdd.map(lambda row:read_from_mongo(row,spark)).toDF()
但是我收到了这个错误:
_pickle.PicklingError:无法序列化对象:异常:您似乎正在尝试从 广播变量、动作或转换。 SparkContext 只能 用于驱动程序,而不是在工作人员上运行的代码中。更多 信息,请参阅 SPARK-5063。
如何并行循环 dataframe 并保持 dataframe 为每一行返回?
【问题讨论】:
标签: pyspark pyspark-sql pyspark-dataframes apache-spark-2.3