繁体   English   中英

Apache Spark。 UDF列基于另一列而不将其名称作为参数传递。

[英]Apache Spark. UDF Column based on another column without passing it's name as argument.

有一个列固定的DataSet,我在这个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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM