2016-11-27 10 views
2

私はspark 1.6.1を使用し、javaでコードします。 callUDF()を使用すると、なぜ私はcallUDFメソッドを使用できませんか?

The method callUDF(String, Column) is undefined for the type PhaseOne 

となり、callUdf()は機能しません。次のように私のコードは次のとおりです。

sqlContext.udf().register("stringToLong", new UDF1<String, Long>() { 

     @Override 
     public Long call(String arg0) throws Exception { 
      // TODO Auto-generated method stub 
      IPTypeConvert itc = new IPTypeConvert(); 
      return itc.stringtoLong(arg0); 
     } 
    }, DataTypes.LongType); 
    DataFrame interDF = initInterDF.withColumn("interIPInt", callUDF("stringToLong", initInterDF.col("interIP"))); 

答えて

2

あなたが先頭に追加する必要があります。

import static org.apache.spark.sql.functions.callUDF; 

し、それを使用します。

sqlContext.udf().register("stringToLong", new UDF1<String, Long>() { 

     @Override 
     public Long call(String arg0) throws Exception { 
      // TODO Auto-generated method stub 
      IPTypeConvert itc = new IPTypeConvert(); 
      return itc.stringtoLong(arg0); 
     } 
    }, DataTypes.LongType); 
DataFrame interDF = initInterDF.withColumn("interIPInt", callUDF("stringToLong", initInterDF.col("interIP"))); 
+0

それは動作しますが、あなたに感謝します! – volity

関連する問題