我已经使用以下代码注册了我的配置单元UDF:
hiveContext.udf().register("MyUDF",new UDF1(String,String)) {
public String call(String o) throws Execption {
//bla bla
}
},DataTypes.String);
现在我想在DataFrame
中使用上面的MyUDF。我们如何使用它?我知道如何在SQL中使用它,它工作得很好
hiveContext.sql(select MyUDF("test") from myTable);
我的hiveContext.sql()
查询涉及多列上的分组,因此出于扩展目的,我试图将此查询转换为DataFrame API
dataframe.select("col1","col2","coln").groupby(""col1","col2","coln").count();
我们能做以下事情吗:dataframe.select(MyUDF("col1"))
?
我用pyspark 3.x在纱线上运行测试了以下内容,它可以
from pyspark.sql.functions import expr
df1 = df.withColumn("result", expr("MyUDF('test')"))
df1.show()
df2 = df.selectExpr("MyUDF('test') as result").show()
df2.show()
万一您遇到"找不到类"错误。然后您可能需要使用spark.sql("ADD JAR hdfs://...")
添加jar