从dataframe中的n列中动态应用UDF至1至n列



我有一个架构和列的名称,可以将UDF应用于。列的名称是用户输入,每个输入的数字可能会有所不同。有没有办法将UDF应用于DataFrame中的N列?

试图实现这一目标。对于带有col1,col2,col3,col4,col5

的模式
  DataFrame newDF = df.withColumn("col2", callUDF("test", (df.col("col2"))));
  or 
  DataFrame newDF = df.withColumn("col2", callUDF("test", (df.col("col2"))))
                 .withColumn("col3", callUDF("test", (df.col("col3"))));
  or
   DataFrame newDF = df.withColumn("col2", callUDF("test", (df.col("col1"))))
                 .withColumn("col3", callUDF("test", (df.col("col3"))))
                 .withColumn("col5", callUDF("test", (df.col("col5"))))
  or for N columns.

有什么想法?

我最终将代码写入动态生成SPARK SQL查询,以将UDF应用于1至N Cols。然后注册输入数据框为temp表并使用生成的查询。

相关内容

  • 没有找到相关文章

最新更新