Python 3.x pyspark-python3_pickle.PicklingError:无法序列化对象:TypeError:can';t pickle\u thread.RLock对象

Python 3.x pyspark-python3_pickle.PicklingError:无法序列化对象:TypeError:can';t pickle\u thread.RLock对象,python-3.x,apache-spark,pyspark,Python 3.x,Apache Spark,Pyspark,Python版本:3.6.5 火花:2.3.0 测试一个udf,该udf接受类型为的输入,当我打印它时,它有列 我的项目有子包,然后是子包 包装 子包装1 次级方案2 白痴 从my Main.py调用一个UDF,该UDF将调用subpkg2(.py)文件中的函数 3.由于嵌套函数较多,且UDF与许多其他函数相互通信,因此spark job无法找到子KG2文件 解决方案: 创建pkg的egg文件并通过--py文件发送。什么是udf_funct?pyspark-udf-udf-udf funct,

Python版本:3.6.5

  • 火花:2.3.0

  • 测试一个udf,该udf接受类型为的输入,当我打印它时,它有
  • 我的项目有子包,然后是子包 包装 子包装1 次级方案2 白痴
  • 从my Main.py调用一个UDF,该UDF将调用subpkg2(.py)文件中的函数 3.由于嵌套函数较多,且UDF与许多其他函数相互通信,因此spark job无法找到子KG2文件
  • 解决方案:
    创建pkg的egg文件并通过--py文件发送。

    什么是
    udf_funct
    pyspark-udf-udf-udf funct,它在2.7中运行时接受'pyspark.sql.column.column'参数列,唯一的区别是beginning中的b'
    您能发布一个输入df的示例,调用您的udf和预期输出的相关代码吗?```````与此问题类似,我在本地模式下运行,但它仍然给出与链接“1”中的错误类似的错误。我的项目有子包,然后是子包pkg subpckg1 subpcg2.py2。我在Main.py中调用一个UDF,它将调用subpkg2(.py)文件3中的一个函数。由于嵌套函数更多,UDF与许多其他函数相互通信,spark job无法找到subpkg2文件解决方案:@SchwarzeHuhn创建一个pkg的egg文件并通过--py文件发送```
    udf_call = udf(udf_funct, StringType())
    col_columns = [col(c) for c in df.columns]
    print(col_columns) 
    #has list with bytecodes Column<b' which is not in case of 2.7
    udf_call(struct(*col_columns))