如何通过Spark Thrift Server访问自定义UDF?

sea*_*eys 5 hive user-defined-functions amazon-emr spark-thriftserver

我正在 EMR 上运行 Spark Thrift 服务器。我通过以下方式启动 Spark Thrift 服务器:

  sudo -u spark /usr/lib/spark/sbin/start-thriftserver.sh --queue interactive.thrift --jars /opt/lib/custom-udfs.jar
Run Code Online (Sandbox Code Playgroud)

请注意,我有一个客户 UDF jar,我想将其添加到 Thrift Server 类路径,因此我在上面的命令中添加了 --jars /opt/lib/custom-udfs.jar。

进入 EMR 后,我发出以下命令来连接到 Spark Thrift 服务器。

beeline -u jdbc:hive2://localhost:10000/default
Run Code Online (Sandbox Code Playgroud)

然后我就可以发出像显示数据库这样的命令。但是如何访问自定义 UDF?我认为通过在 Thrift Server 启动脚本中添加--jars选项,也可以添加供 Hive 资源使用的 jar。

我现在访问自定义 UDF 的唯一方法是将客户 UDF jar 添加到 Hive 资源

add jar /opt/lib/custom-udfs.jar
Run Code Online (Sandbox Code Playgroud)

然后创建UDF的函数。

问题: 有没有一种方法可以自动配置自定义 UDF jar,而无需每次都将 jar 添加到 Spark 会话?

谢谢!

Tho*_*aux 0

最简单的方法是编辑文件start-thriftserver.sh,最后:

  1. 等待服务器准备就绪
  2. 执行设置 SQL 查询

您还可以在 JIRA 上发布提案,这是一个非常好的功能“启动时执行设置代码”。