我在字串列中有一個帶有 xml 的資料框,在我可以進一步處理之前,我需要 xml 來檢查格式是否正確。我目前遵循的策略是使用 udf,但結果出現錯誤。
代碼:
from lxml import etree
def wellformedness (xml):
wellformed = True
try:
doc = etree.fromstring(xml)
except:
wellformed = False
return wellformed
udf_wellformedness = F.udf(wellformedness, BooleanType())
df.withColumn('Wellformed', udf_wellformedness('MyColumn'))
df2 = df.filter(~df["Wellformed"])
錯誤:AnalysisException:無法在(MyColumn、MyColumn2、MyColumn3)之間決議列名“格式良好”;
我究竟做錯了什么?這可以更有效地完成嗎?
uj5u.com熱心網友回復:
您正在將該列添加到您不保存的資料框中。您呼叫的行withColumn應如下所示:
df = df.withColumn('Wellformed', udf_wellformedness('MyColumn'))
如果您必須使用自定義 python 函式驗證 xml,則使用 udf 是最佳選擇。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/366665.html
