2017-03-15 6 views
1

UDFに適用するスキーマと名前があります。列の名前はユーザー入力であり、入力ごとに数値が異なる場合があります。 データフレームのN列にUDFを適用する方法はありますか?データフレーム内のN列から1〜N列まで動的にUDFを適用します。

これを達成しようとしています。スキーマの は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. 

は、任意のアイデアを言いますか?

+0

これを確認してくださいhttp://stackoverflow.com/questions/34037889/apply-same-function-to-all-fields-of-spark-dataframe-row –

答えて

0

1からN colsにUDFを適用するSPARK SQLクエリを動的に生成するコードを作成しました。次に、入力データフレームを一時テーブルとして登録し、genereratedクエリを使用します。

+0

コードを共有してください。そうでなければあなたの答えは役に立たない。 –

関連する問題