2016-06-28 16 views
1

同じデータフレームの他のカラムに基づいて、指定されたデータフレームに新しいカラムを追加しようとしています。withColumnとcallUDFを使用してデータフレームにカラムを追加する

mapは文字列ブールマップです

以下は私のコードです。

hiveContext.udf().register("udfname", new UDF2<String, String, Boolean>() { 
    @Override 
    public Boolean call(String col1, String col2) throws Exception { 
      return map.get(col1+col2); 
     } 
    }, DataTypes.BooleanType); 

    DataFrame newDF = df.withColumn("newcol", calUDF("udfname" ,df.col("col1"),df.col("col2"))); 

コンパイルエラーです。

The method calUDF(String, Column, Column) is undefined for the type myclass 
+0

私は1.5.0を使用しています – user1544460

答えて

0

私はcallUDFを使用できませんでしたが、私はudfを持つクエリを作成して解決しました。

テーブルからnewCol3としてcol1、col2、udfname(col1、col2)を選択します。 上記の値は、他の列に基づいて値が設定された新しい列の新しいデータフレームを示します。

0

これは実際には遅かったですが、問題は通話中に2番目のlが不足していたため、誤植による可能性が最も高いです。 callUDFがインポートされていることを確認する必要もありますが、udfがうまくいけばおそらく実行しています。

関連する問題