У меня есть вложенное поле, как показано ниже. Я хочу вызвать flatmap (я думаю), чтобы получить сплющенную строку.
Мой набор данных имеет
А, В, [[х, у, г]], С
Я хочу преобразовать его для получения вывода, как
A, B, X, Y, Z, C
Это для Spark 2.0 +
Спасибо!
Попробуйте это для СДР:
val rdd = sc.parallelize(Seq(("A","B",Array("X","Y","Z"),"C"))) rdd.flatMap(x => (Option(x._3).map(y => (x._1,x._2,y(0),y(1),y(2),x._4 )))).collect.foreach(println)
Выход:
(A,B,X,Y,Z,C)