Я обрабатываю большой XML-файл с использованием Spark XML Library (HyukjinKwon: spark-xml: 0.1.1-s_2.11).Обработка XML завершается сбоем с исключением анализа для нескольких записей.Я получаю Исключение Анализа для Выбора на Схеме с примерами записей ниже.
У меня есть код ниже для обработки xml и сгенерированной Схемы.Поскольку входной xml может иногда иметь выходные данные, как в примере 2, мой выбор для фрейма данных завершается с ошибкой Analysis.
Sample 1:- Works Fine
XML 1:
<AuthorList CompleteYN="Y">
<Author ValidYN="Y">
<LastName>H</LastName>
<ForeName>L</ForeName>
<Initials>L</Initials>
<AffiliationInfo>
<Affiliation>Aff1</Affiliation>
</AffiliationInfo>
<AffiliationInfo>
<Affiliation>Aff2</Affiliation>
</AffiliationInfo>
</Author>
</AuthorList>
Schema:
root
-- AuthorList: struct (nullable = true)
| | | |-- Author: struct (nullable = true)
| | | | |-- AffiliationInfo: array (nullable = true)
| | | | | |-- element: struct (containsNull = true)
| | | | | | |-- Affiliation: string (nullable = true)
Sample2:- Doesn't Work
XML 2:
<AuthorList CompleteYN="Y">
<Author ValidYN="Y">
<LastName>H</LastName>
<ForeName>L</ForeName>
<Initials>L</Initials>
<AffiliationInfo>
<Affiliation>Aff1</Affiliation>
</AffiliationInfo>
<AffiliationInfo>
<Affiliation>Aff2</Affiliation>
</AffiliationInfo>
</Author>
<Author ValidYN="Y">
<LastName>H</LastName>
<ForeName>L</ForeName>
<Initials>L</Initials>
<AffiliationInfo>
<Affiliation>Aff4</Affiliation>
</AffiliationInfo>
</Author>
</AuthorList>
Schema:
root
|-- AuthorList: struct (nullable = true)
| | | |-- Author: array (nullable = true)
| | | | |-- element: struct (containsNull = true)
| | | | | |-- AffiliationInfo: array (nullable = true)
| | | | | | |-- element: struct (containsNull = true)
| | | | | | | |-- Affiliation: string (nullable = true)
Exception: AnalysisException: "cannot resolve '`AuthorList`.`Author`.`AffiliationInfo`['Affiliation']' due to data type mismatch: argument 2 requires integral type, however, ''Affiliation'' is of string type.;;
Я хотел бы создать / изменить схему, которая может поддерживать записи XML2.Не совсем уверен, что не так с созданной схемой.Цените входы.