首页 > 解决方案 > Pyspark 中的 PicklingError

问题描述

我在 pyspark 中编写了下面的函数来获取 deptid 并返回我想在 spark sql 中使用的数据帧。

def get_max_salary(deptid):

sql_salary="select max(salary) from empoyee where depid ={}"

df_salary = spark.sql(sql_salary.format(deptid)) return df_salary spark.udf.register('get_max_salary',get_max_salary)

但是我收到以下错误消息。我在网上搜索,但在任何地方都找不到合适的解决方案。有人可以帮我吗

错误消息 - PicklingError:无法序列化对象:异常:您似乎正在尝试从广播变量、操作或转换中引用 SparkContext。SparkContext 只能在驱动程序上使用,不能在它在工作人员上运行的代码中使用。有关详细信息,请参阅 SPARK-5063。

标签: apache-sparkpysparkpyspark-sqlpyspark-dataframes

解决方案


推荐阅读