【发布时间】:2017-05-11 07:04:35
【问题描述】:
火花 UDF 是否可以返回多个值?如果是这样,如何在数据框 API 中访问各个项目。
【问题讨论】:
-
UDF 只能返回单列值。这些值可以是集合或元组,但不能是多个值。如果你真的需要,你可以返回一个元组,然后使用
$"colname_1"、$"colname_2"等命令拆分它
标签: scala apache-spark apache-spark-sql
火花 UDF 是否可以返回多个值?如果是这样,如何在数据框 API 中访问各个项目。
【问题讨论】:
$"colname_1"、$"colname_2" 等命令拆分它
标签: scala apache-spark apache-spark-sql
您有三个选择:
返回一个Seq 相同类型的项目以创建array 列。
udf(() => Seq(1.0, 2.0, 3.0))
返回一个Map:
udf(() => Map("x" -> 1.0, "y" -> -1.0))
返回一个产品(元组或案例类的实例)以创建struct 列。
udf(() => (1.0, "foo", 5))
【讨论】: