gpt4 book ai didi

scala - Apache 星火。 UDF 列基于另一列,而不将其名称作为参数传递。

转载 作者:行者123 更新时间:2023-12-01 09:29:34 26 4
gpt4 key购买 nike

DataSet 中有 firm 列,我正在向该 DataSet 添加另一列 - firm_id 示例:

private val firms: mutable.Map[String, Integer] = ...
private val firmIdFromCode: (String => Integer) = (code: String) => firms(code)
val firm_id_by_code: UserDefinedFunction = udf(firmIdFromCode)
...
val ds = dataset.withColumn("firm_id", firm_id_by_code($"firm"))

有没有一种方法可以消除传递 $"firm" 作为参数(此列始终存在于 DS 中)。我正在为此寻找一些东西:

val ds = dataset.withColumn("firm_id", firm_id_by_code)

最佳答案

您可以在定义 udf 时提供它将使用的列。

val someUdf = udf{ /*udf code*/}.apply($"colName")

// Usage in dataset
val ds = dataset.withColumn("newColName",someUdf)

关于scala - Apache 星火。 UDF 列基于另一列,而不将其名称作为参数传递。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42303907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com