如何在Spark DataFrame中使用已注册的配置单元UDF



我已经使用以下代码注册了我的配置单元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

相关内容

  • 没有找到相关文章