ダイナミックXMLファイルをロードし、データをデータフレームに変換しようとしました。 ScalaのAPIを使用して、私のXMLのexempleSpark XML - スキーマを指定してXMLをロードする際にstruct type文字列を適用する方法
<?xml version="1.0"?>
<catalog>
<book id="bk104">
<title>Oberon</title>
<code>000010</code>
</book>
<book id="bk106">
<title>Lover</title>
<code>000030</code>
</book>
</catalog>
:
val df = sqlContext.read
.format("com.databricks.spark.xml")
.option("rowTag", "book")
.load("books.xml")
私は私のデータフレームのスキーマを表示しよう:
root
|-- title: string (nullable = true)
|-- price: float (nullable = true)
|-- code: long (nullable = true)
問題がある:値000010(コード)は、Scala APIがIntegerとして考えるので、ディスプレイ10です。
値 "000010"を保持する文字列として "code"列を読み取るソリューションはありますか? P/S:
パス:ファイルの場所読み込むXMLのAPIは、いくつかのオプションを受け入れるファイルときので、私のプロジェクトでは、いくつかのcontraintsの、指定したスキーマの溶液は
val df = sqlContext.read
.format("com.databricks.spark.xml")
.option("rowTag", "book")
.schema(customSchema)
.load("books.xml")