Это должно быть тривиально - но я что-то упускаю:
import org.apache.spark.sql._
import org.apache.spark.functions._
val rand = new java.util.Random(42)
val zipUdf = udf( () => 10000 + rand.nextInt(200))
val zdf = df.withColumn("postalCode",col(zipUdf))
Использование udf
напрямую, по-видимому, некорректно:
found : org.apache.spark.sql.expressions.UserDefinedFunction
required: org.apache.spark.sql.Column
Какая магия требуется?
Обновление : я уже пробовал следующее:
val zdf = df.withColumn("postalCode",zipUdf)
Реальная проблема в том, что zipUdf()
не zipUdf