如何从配置单元上下文调用使用pyspark的java编写的配置单元udf

pbossiut  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(353)

我用 getLastProcessedVal2 在hive中使用udf从表中获取最新的分区。这个udf是用java编写的。我想使用相同的自定义项从pyspark使用配置单元上下文。

dfsql_sel_nxt_batch_id_ini=sqlContext.sql(''' select l4_xxxx_seee.**getLastProcessedVal2**("/data/l4/work/hive/l4__stge/proctl_stg","APP_AMLMKTE_L1","L1_AMLMKT_MDWE","TRE_EXTION","2.1")''')

错误:
错误exec.functionregistry:无法加载udf类:java.lang.classnotfoundexception:

tag5nh1u

tag5nh1u1#

开始你的 pyspark 外壳组件: pyspark --jars /path/to.udf.jar <all-other-param>
提交你的Pypark工作 --jars 选项为: spark-submit --jars /path/to/udf.jar <all-other-param>

icnyk63a

icnyk63a2#

您可以使用sqlcontext方法udf注册用户定义的函数,在那里您可以看到您必须传递一个字符串作为第一个参数,它将表示您的 udf 使用时 SQL 查询。
例如

sqlContext.udf().register("slen",
       (String arg1) -> arg1.length(),
       DataTypes.IntegerType);

sqlContext.sql("SELECT slen(name) FROM user").show();

相关问题