我正在尝试根据同一数据帧的其他列向给定的数据框添加新列。
map是一个String-Boolean映射
以下是我的代码。
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 :(得分:0)
我无法使用callUDF,但我通过查询udf来解决它。
从表中选择col1,col2,udfname(col1,col2)作为newCol3。 上面将为我提供新数据框,其中包含基于其他列填充其值的新列。
答案 1 :(得分:0)
现在已经很晚了,但问题很可能是由于你错过了第二次打电话的错字。您还需要确保已导入callUDF,但如果udf有效,那么您可能会这样做。