Эффективное преобразование JSON в Spark - PullRequest
1 голос
/ 29 сентября 2019

Я пытаюсь выполнить относительно простую задачу в Spark, но она быстро становится довольно болезненной.Я анализирую JSON и хочу обновить поле после анализа JSON.Я хочу сделать это после разбора, поскольку JSON сложен (вложен) со многими элементами.

"attributes" -> 
   "service1" ->
   "service2" ->
   ...
"keyId"

Однако такой подход кажется столь же сложным.Сгенерированный Row, похоже, не знает столбцы за пределами столбцов верхнего уровня ("attribute" / "keyId").Так, например, я не могу сделать withColumn, потому что строка верхнего уровня не видит его.

jsonDf.map((parsedJson: Row) => {
      val targetFieldToReplace = parsedJson.getAs[Row](0).getList[Row](2).get(0).getAs[String](0)
      ????
    })

Я могу извлечь значение, но не знаю, как его вернуть.Я думал о преобразовании всего в Последовательность, но это не кажется хорошей идеей, потому что это сгладит вложенную структуру.Я мог бы воссоздать строку с каждым элементом один за другим, но в этот момент это кажется неправильным.Что мне здесь не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...