scala - 在尝试在 PySpark 中使用 SCALA UDF 时,尽管提供了 --jars:错误:pyspark.sql.utils.AnalysisException:u'Can not load class
问题描述
我正在尝试在 PySpark 中使用 scala UDF。
我创建了一个 jar 文件,它有一个 scala UDF,其代码如下所示:
package example
import org.apache.spark.sql.expressions.UserDefinedFunction
import org.apache.spark.sql.functions._
object UDF_Scala_code {
def main(args: Array[String]): Unit = {
getFun()
}
def getStringLength(s: String) = s.length
def getFun(): UserDefinedFunction = udf(getStringLength _)
}
使用 Spark 2.4
我在 pyspark 代码(use_scala_udf1.py)中收到以下行错误:
spark.udf.registerJavaFunction("get_col_len", "example.UDF_Scala_code.getFun", StringType())
我正在运行的命令是:
spark2-submit --jars /path/ws_spark_scala.jar use_scala_udf1.py
错误:
pyspark.sql.utils.AnalysisException: u'Can not load class example.UDF_Scala_code.getFun, please make sure it is on the classpath;'
但是,如果我在 Pyspark 中使用以下代码,我会得到预期的结果。
_string_length = sc._jvm.example.UDF_Scala_code.getFun()
return Column(_string_length.apply(_to_seq(sc, [col], _to_java_column)))
谢谢。
解决方案
推荐阅读
- reactjs - 无法添加属性 effectTag,对象不可扩展
- wordpress - 在 wordpress 主题中导入 vuejs 组件
- ruby-on-rails - 升级 Bitnami Redmine 时迁移失败
- swagger - 来自 Swagger API 定义的 NestJS 代码生成
- github - 许多 Github 站点的图像未显示(内容安全策略)
- python - jinja2 部分转义 {% and '
- logstash - 使用 logstash 日期过滤器插件匹配多种日期格式
- java - 处理异常后返回程序中的特定位置
- python - 如何用带注释的句子更新 VADER 词典?
- android - 评估根项目“user-auth-retrofit”时出现问题