Короче говоря - я использую искровой код в Scala IDE для преобразования json в csv. У меня нет знаний об искре, так как я работал только с такими СУБД, как Oracle, TD и DB2. Мне дали только код, который преобразует данные json в csv и как передать аргументы для извлечения данных из схемы.
Теперь я могу получить данные, которые находятся внутри структуры имассив с помощью
val val1 = df.select(explode($"data.business").as("ID")).select($"ID.amountTO")
val1.repartition(1).write.format("com.databricks.spark.csv").option("header", "true").save(args(2) + "\\Result" + "\\" + timeForpath + "\\val1")
Я не знаю, чтобы экспортировать столбцы, которые не в структуре и непосредственно в корне схемы, такие как QAYONOutCome, QA1PartiesComments и т. д.
root
|-- QAYONOutCome: string (nullable = true)
|-- QA1PartiesComments: string (nullable = true)
|-- QA1PartiesQID: string (nullable = true)
|-- QA1PartiesResponse: string (nullable = true)
|-- QAHolderTypeComments: string (nullable = true)
|-- QAHolderTypeQID: string (nullable = true)
|-- QAHolderTypeResponse: string (nullable = true)
|-- QAhighRiskComments: string (nullable = true)
|-- QAhighRiskQID: string (nullable = true)
|-- QAhighRiskResponse: string (nullable = true)
|-- QA2ClassComments: string (nullable = true)
|-- QA2ClassQID: string (nullable = true)
|-- QA2ClassResponse: string (nullable = true)
|-- QAoutcomeComments: string (nullable = true)
|-- QAoutcomeQID: string (nullable = true)
|-- QAoutcomeResponse: string (nullable = true)
|-- data: struct (nullable = true)
| |-- business: array (nullable = true)
| | |-- element: struct (containsNull = true)
| | | |-- amountTO: string (nullable = true)
| | | |-- ID: string (nullable = true)
| | | |-- Registration: struct (nullable = true)
| | | | |-- country: string (nullable = true)
| | | | |-- id: long (nullable = true)
| | | | |-- line1: string (nullable = true)
| | | | |-- line2: string (nullable = true)
| | | | |-- postCode: string (nullable = true)
Любая помощь приветствуется. Извиняюсь, если мой вопрос звучит очень глупо :(. Пожалуйста, дайте мне знать, если требуется дополнительная информация для решения или ясности. Заранее большое спасибо.