对于包含字符串和数字数据类型混合的数据框,目标是创建features一个minhash包含所有这些类型的新列。
尽管这可以通过执行dataframe.toRDD来完成,但是下一步要做的只是简单地将其转换RDD 回数据帧,这样做是很昂贵的。
因此,有一种方法可以执行udf以下操作:
val wholeRowUdf = udf( (row: Row) => computeHash(row))
Run Code Online (Sandbox Code Playgroud)
Rowspark sql当然不是数据类型-因此这将无法正常显示。
更新/说明 我意识到创建一个在其中运行的全行UDF很容易withColumn。不清楚的是可以在spark sql语句内使用什么:
val featurizedDf = spark.sql("select wholeRowUdf( what goes here? ) as features
from mytable")
Run Code Online (Sandbox Code Playgroud)