阿帕奇星火。 UDF 列基于另一列,而不将其名称作为参数传递。
Apache Spark. UDF Column based on another column without passing it's name as argument.
有包含列公司的数据集,我正在向该数据集添加另一列 - 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)
有包含列公司的数据集,我正在向该数据集添加另一列 - 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)