apache-spark - 将 Apache Spark xml 从 2.11 迁移到 2.12 会给出以下警告。如何直接使用 xmlReader
问题描述
代码:
val xmlDf: DataFrame = spark.read
.format("xml")
.option("nullValue", "")
.xml(df.select("payload").map(x => x.getString(0)))
警告:类 XmlDataFrameReader 中的方法 xml 已弃用(自 0.13.0 起):直接使用 XmlReader .xml(df.select("payload").map(x => x.getString(0)))
解决方案
您是否尝试将 xml 读取到 df 或从列读取 xml 到 df(嵌套 xml)?
请尝试:
spark.read()
.format("xml")
.option("rowTag", "book")
.load("books.xml");
或者:
import com.databricks.spark.xml.functions.from_xml
import com.databricks.spark.xml.schema_of_xml
import spark.implicits._
val df = ... /// DataFrame with XML in column 'payload'
val payloadSchema = schema_of_xml(df.select("payload").as[String])
val parsed = df.withColumn("parsed", from_xml($"payload", payloadSchema))
https://github.com/databricks/spark-xml (兼容 Spark 2.4.x 和 3.x,兼容 Scala 2.12。)
推荐阅读
- python - django 使用 ajax 从 api 获取数据
- download - BrowserComponent "onDownloadStart" event
- c++ - 当 boost 自动测试用例名称中包含逗号时,boost 会抱怨:“测试设置错误:没有匹配过滤器的测试用例或所有测试用例都被禁用”
- c# - 如何在单元测试期间跳过 Fluent 验证静态功能?
- jsf - Primefaces selectManyCheckbox在列中从上到下布局
- eslint - cmd eslint 找不到 IDE 发现的 ts 错误
- c# - Xamarin.IOS 上的动态约束以填充整个屏幕
- asp.net - 方法在没有调用的情况下被调用
- serialization - Django-rest:使用 2 个外键发送 POST 请求
- objective-c - 如何在不泄漏内存的情况下正确关闭 FFmpeg 流和 AVFormatContext?