Анализ вложенного XML в базах данных

#scala #apache-spark #apache-spark-sql #azure-databricks

Вопрос:

Я пытаюсь п

Я пытаюсь прочитать XML в фрейм данных и пытаюсь сгладить данные с помощью explode, как показано ниже.

val df = spark.read.формат(«xml»).опция(«Метка строки»,»вкл.»). опция(«вывод»,»истина»).загрузите(«путь к файлу») val parsxml= df .с колонкой(«exploded_element», разнесите((«prgSvc.элемент»))).

Я получаю следующую ошибку.

 command-5246708674960:4: error: type mismatch;
found   : String("prgSvc.element")
required: org.apache.spark.sql.Column
.withColumn("exploded_element", explode(("prgSvc.element")))**

Before reading the XML into the data frame, I also tried to manually assign a custom schema and read the XML file. But the output is all NULL. Could you please let me know if my approach is valid and how to resolve this issue and achieve the output.
Thank you.
    
 

Ответ №1:

Используйте это

 import spark.implicits._

val parsxml= df .withColumn("exploded_element", explode($"prgSvc.element"))
 

Комментарии:

1. Спасибо за ответ. Приведенный выше код выдает мне следующую ошибку,

2. орг.Апачи.Искра.язык SQL.AnalysisException: не удается разрешить ‘ prgSvc.element ‘ если входные столбцы: [prgSvcs];; при изменении взорваться имя столбца как prgSvcs, ошибки орг.Апачи.Искра.язык SQL.AnalysisException: нет такой структуры поля элемента в prgSvc; в таком случае, какой должна быть моя rowTag при чтении XML-файла?

3. Тег строки должен быть корневым. Затем распечатайте схему, прежде чем использовать имена столбцов выше