Как построить фрейм данных Scala с переменным количеством атрибутов записи? - PullRequest
0 голосов
/ 07 ноября 2019

Я только начал изучать Scala для моего официального проекта. Я не смог решить следующий вариант использования после проверки нескольких потоков в Stack Overflow и других потоках.

Мне нужно перебрать набор данных, где каждая из выходных строк может иметь переменное количество пар ключ-значение. Вот мой код.

val flattendDataset = ds.map(
  eachRow => {
    val processedResponseJSON = eachRow.requestBody

    // It might have different number of key-value pair for each ds entry.
    val responseAsMapFromJson:Map[String, AnyRef] = parseJson(processedResponseJSON) 
    responseAsMapFromJson:Map
}).collect

PN - ds - это набор данных искры.

Это происходит со следующей ошибкой

java.lang.UnsupportedOperationException: No Encoder found for scala.AnyRef
- map value class: "java.lang.Object"
- array element class: "scala.collection.mutable.Map"
- root class: "scala.collection.immutable.List"
  at org.apache.spark.sql.catalyst.ScalaReflection$$anonfun$org$apache$spark$sql$catalyst$ScalaReflection$$serializerFor$1.apply(ScalaReflection.scala:650)

Как я могу решить эту проблему

...