Каким должен быть тип ввода для UDF, принимающего столбцы типа - Array of StructType или "null"? - PullRequest
0 голосов
/ 10 ноября 2019

Схема моего DataFrame выглядит следующим образом:

root
 |-- col1: string (nullable = true)
 |-- col2: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- unit1: string (nullable = true)
 |    |    |-- sum(unit2): string (nullable = true)
 |    |    |-- max(unit3): string (nullable = true)
 |-- col3: array (nullable = true)
 |    |-- element: struct (containsNull = true)
 |    |    |-- unit1: string (nullable = true)
 |    |    |-- sum(unit2): string (nullable = true)
 |    |    |-- max(unit3): string (nullable = true)

Я пишу UDF в Scala, который принимает в столбцах - col2 и col3.
Каким должен быть мой тип ввода для каждого изстолбцы, которые я передаю в UDF, учитывая, что значение col2 может быть "null"

val process_stuff = udf((col2: ???, col3: ??? ) => {

Пока я пробовал это и другие мои вещи

val process_stuff = udf((col2:ArrayType[StructType[StructField]], col3:ArrayType[StructType[StructField]]) => {

но это дает мне предупреждения здесь и там Пожалуйста, помогите!

1 Ответ

0 голосов
/ 10 ноября 2019

Ваш UDF должен иметь следующую подпись:

val process_stuff = udf((col2: Seq[Row], col3: Seq[Row]) => {...})
...