UDF 的输入类型应该是什么 - 结构类型数组或"null"?



我的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)

我正在scala中编写一个UDF,它接受cols-col2和col3。
考虑到col2的值,我传递给UDF的每一列的输入类型应该是"null">

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

到目前为止,我已经尝试了这个和我的其他东西

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

但它在这里和那里给了我警告请帮忙!

您的UDF应该具有以下签名:

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

最新更新