无法序列化pyspark udf

50pmv0ei  于 2021-05-29  发布在  Spark
关注(0)|答案(1)|浏览(523)

我试图在pyspark中创建一个自定义项。该函数接受一个xml输入字符串。然后使用lxml对其进行解析,并返回一个包含属性的字典列表。我创建了函数 parse_xml 但当我试着 spark.udf.register("parse_xml", parse_xml) 但这会产生错误: PicklingError: Could not serialize object: TypeError: can't pickle lxml.etree.XMLParser objects .
似乎lxml对象是不可序列化的,但是输入是一个字符串,输出是一个列表/字典——有没有办法创建这样的udf?

bksxznpy

bksxznpy1#

pyspark使用的库是 cpickle 它还不支持用c编写的云pickle和序列化库。
如果您想解析xml,请改用DatabricksXML解析器,这样也会很快。

相关问题