PySpark XML处理-忽略不良记录

时间:2019-04-04 17:57:19

标签: pyspark azure-databricks

我正在使用Spark XML库(HyukjinKwon:spark-xml:0.1.1-s_2.11)处理一个大型XML文件。 XML处理失败,并带有几个记录的分析异常。我想继续处理文件而忽略这些记录。

我具有以下用于处理xml的代码,我尝试了“ DROPMALFORMED”选项,但没有帮助。

df = (spark.read.format("xml")
      .option("rootTag","Articles")
      .option("rowTag", "Article")
      .option("inferSchema", "true")
      .option("mode", "DROPMALFORMED")
      .load("/mnt/RawAdl2/problemfile.xml"))

AnalysisException: "cannot resolve '['Affiliation']' due to data type mismatch: argument 2 requires integral type, however, ''Affiliation'' is of string type.;

我想删除格式错误的记录,然后继续处理文件。我还有其他选择吗?感谢输入!

编辑:查看源代码link,该库支持格式错误的选项。由于我不太熟悉Scala,因此我不确定是否为此选项使用了正确的语法。请指教。

在检查了源代码之后,我在下面的代码中尝试了一下,但是没有运气

.option("mode", "DROP_MALFORMED_MODE")

1 个答案:

答案 0 :(得分:0)

尝试设置badRecords路径:

.option("badRecordsPath", "/tmp/badRecordsPath")

https://docs.databricks.com/spark/latest/spark-sql/handling-bad-records.html