【发布时间】:2022-01-18 10:53:28
【问题描述】:
-
我正在使用 databricks 读取 API 从 ADLSGEN2 读取 csv 文件。
-
csv 文件仅包含一列,其中包含 Power Shell(clixml) 内容。
-
在尝试使用 spark-xml 函数提取时,我没有得到 正确的架构和记录已损坏。
-
所以请帮我将clixml转换为xml或exact 提取xml内容的解决方案。
代码块:
import com.databricks.spark.xml._
import com.databricks.spark.xml.from_xml_string
import com.databricks.spark.xml.functions.from_xml
import org.apache.spark.sql.functions.{col}
import org.apache.spark.sql.types.{StructType}
import spark.implicits._
var path = "csvpath"
val df= spark.read
.option("header","false")
.option("inferschema","true")
.csv(path)
val dfrename= df.withColumnRenamed("_c0","xmldata")
val xmlSchema = schema_of_xml(dfrename.select("xmldata").as[String])
val xmlDF = dfrename.withColumn("xmldata", from_xml(col("xmldata"), xmlSchema))
display(xmlDF )
XML 内容:示例
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
<Obj RefId="0">
<DT>2018-03-21T08:05:39.5085956-04:00</DT>
<MS>
<Obj N="DisplayHint" RefId="1">
<TN RefId="0">
<T>Microsoft.PowerShell.Commands.DisplayHintType</T>
<T>System.Enum</T>
<T>System.ValueType</T>
<T>System.Object</T>
</TN>
<ToString>DateTime</ToString>
<I32>2</I32>
</Obj>
</MS>
</Obj>
</Objs>
【问题讨论】:
标签: xml scala apache-spark