【问题标题】:PySpark XML processing - Ignoring bad recordsPySpark XML 处理 - 忽略不良记录
【发布时间】:2019-04-04 17:57:19
【问题描述】:

我正在使用 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 库支持 Malformed 选项。由于我不太熟悉 Scala,因此我不确定我是否为此选项使用了正确的语法。请指教。

查看源代码后,我尝试了以下代码,但没有成功

.option("mode", "DROP_MALFORMED_MODE")

【问题讨论】:

    标签: pyspark azure-databricks


    【解决方案1】:

    尝试设置 badRecords 路径:

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

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

    【讨论】:

    • 我发现问题不在于读取,异常是从同一单元格中的选择生成的。感谢您的回复指出如何处理不良记录。
    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    相关资源
    最近更新 更多