Я использую spark-shell и хочу создать фрейм данных (df2) из другого фрейма данных (df1), используя select и udf.Но возникает ошибка, когда я хочу показать df2 ==> df2.show (1)
var df1 = sql(s"select * from table_1")
val slice = udf ((items: Array[String]) => if (items == null) items
else {
if (items.size <= 20)
items
else
items.slice(0, 20)
})
var df2 = df1.select($"col1", slice($"col2"))
, а схема df1:
scala> df1.printSchema
root
|-- col1: string (nullable = true)
|-- col2: array (nullable = true)
| |-- element: string (containsNull = true)
scala> df2.printSchema
root
|-- col1: string (nullable = true)
|-- UDF(col2): array (nullable = true)
| |-- element: string (containsNull = true)
ошибка:
Failed to execute user defined function($anonfun$1: (array<string>) => array<string>)