2016-11-27 1 views
2

나는 스파크 1.6.1을 사용하고 자바로 코딩한다. 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

관련 문제