кажется очень простой вопрос, но очень раздражает ..чтения из источника 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"/>
Моя цель читать в DataFrame Spark (Pyspark), чтобы обработать его позже.
Я использую пакет 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 записей в dataframe.
Пожалуйста, помогите :)
(Спарк v. 2.0.0)