我试图根据相同数据框的其他列向给定的数据帧添加新列。
地图是字符串树状地图
以下是我的代码。
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
我无法使用calludf,但是我通过使用UDF进行查询来解决它。
从表中选择COL1,COL2,UDFNAME(COL1,COL2)作为NewCol3。以上将为我提供新的DataFrame,并带有新列,其值基于其他列填充。
这确实很晚,但是问题很可能是由于错别字所致,因为您错过了第二个L中的L。您还需要确保您将Calludf进口,但是如果UDF工作,则可能会做到。