[英]Apache spark aggregation: aggregate column based on another column value
[英]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.