我试图在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?
1条答案
按热度按时间bksxznpy1#
pyspark使用的库是
cpickle
它还不支持用c编写的云pickle和序列化库。如果您想解析xml,请改用DatabricksXML解析器,这样也会很快。