Как привести WrappedArray [WrappedArray [(String, String)]] к массиву [String] в Spark (Scala) - PullRequest
0 голосов
/ 04 марта 2019

Хорошо,

Я работаю с платформой spark в Scala.Мой фрейм данных имеет столбец со следующей структурой и содержанием:

+---------------------------------------------------------------------------------------------+
|Email_Code                                                                                   |
+---------------------------------------------------------------------------------------------+
|[WrappedArray([3,spain]), WrappedArray([,]), WrappedArray([3,spain])]                        |
|[WrappedArray([3,spain]), WrappedArray([3,spain])]                                           |
+---------------------------------------------------------------------------------------------+

|-- Email_Code: array (nullable = true)
 |    |-- element: array (containsNull = false)
 |    |    |-- element: struct (containsNull = false)
 |    |    |    |-- Code: string (nullable = true)
 |    |    |    |-- Value: string (nullable = true)

И я пытаюсь разработать функцию udf, которая принимает все значения структуры «Код», присутствующие в массиве.Но я не могу ...

Я хотел бы выйти, как показано ниже:

+---------------------------------------------------------------------------------------------+
|Email_Code                                                                                   |
+---------------------------------------------------------------------------------------------+
|[3,,3]                                                                                       |
|[3,3]                                                                                        |
+---------------------------------------------------------------------------------------------+

Любая помощь, пожалуйста?

1 Ответ

0 голосов
/ 04 марта 2019

Я должен это исправить:

val transformation = udf((data: Seq[Seq[Row]]) => {data.flatMap(x => x).map{case Row(code:String, value:String) => code}})

df.withColumn("result", transformation($"columnName"))
...