0
似乎是一個很簡單的問題,但很煩人..從XML源讀取自定義架構錯誤
我有以下結構的XML文件:
<A attr1="Str1" attr2="Long1">
<B attr3="Str1" attr4="Str2" attr5="Long1"/>
<B attr3="Str1" attr4="Str2" attr5="Long1"/>
....
<B attr3="Str1" attr4="Str1" attr5="Integer1"/>
我的目標是閱讀放入一個Spark(Pyspark)DataFrame以稍後處理。
我正在使用Databricks軟件包。當我運行下面的代碼:
df = sqlContext.read.format('com.databricks.spark.xml') \
.option('rowTag','A') \
.option('attributePrefix','att_') \
.load('s3a://path.to.my.xml')
得到的DF的模式(自動infered)如下:
root
|-- A: array (nullable=true)
|-- element: struct (containsNull=true)
|-- _VALUE: string(nullable=true)
|-- att_attr3: string(nullable=true)
|-- att_attr4: long(nullable=true)
|-- att_attr5: long(nullable=true)
|-- att_attr1: string(nullable=true)
|-- att_attr2: long(nullable=true)
的問題是attr4在這種情況下,我希望是類型字符串,但被視爲長。
每個自定義架構我試圖設置,導致了一些內部錯誤,或在數據幀0記錄。
請幫助:)
(星火訴2.0.0)