SparkSQL UDF基礎(chǔ)操作
更新時(shí)間:
Spark SQL提供了很多內(nèi)建函數(shù)來滿足您的計(jì)算需求,您也可以通過創(chuàng)建自定義函數(shù)(UDF)來滿足不同的計(jì)算需求。UDF在使用上與普通的內(nèi)建函數(shù)類似。本文為您介紹Spark SQL中使用Hive自定義函數(shù)的流程。
前提條件
已在Hive中創(chuàng)建了UDF,詳情請(qǐng)參見開發(fā)UDF。
使用Hive UDF
使用文件傳輸工具,上傳生成的JAR包至集群任意目錄(本文以test目錄為例)。
上傳JAR包至HDFS或OSS(本文以HDFS為例)。
通過SSH方式登錄集群,詳情請(qǐng)參見登錄集群。
執(zhí)行以下命令,上傳JAR包到HDFS。
hadoop fs -put /test/hiveudf-1.0-SNAPSHOT.jar /user/hive/warehouse/
您可以通過
hadoop fs -ls /user/hive/warehouse/
命令,查看是否上傳成功。待返回信息如下所示表示上傳成功。Found 1 items -rw-r--r-- 1 xx xx 2668 2021-06-09 14:13 /user/hive/warehouse/hiveudf-1.0-SNAPSHOT.jar
創(chuàng)建UDF函數(shù)。
執(zhí)行以下命令,進(jìn)入Spark SQL命令行。
spark-sql
執(zhí)行以下命令,應(yīng)用生成的JAR包創(chuàng)建函數(shù)。
create function myfunc as "org.example.MyUDF" using jar "hdfs:///user/hive/warehouse/hiveudf-1.0-SNAPSHOT.jar";
說明代碼中的
myfunc
是UDF函數(shù)的名稱,org.example.MyUDF
是開發(fā)UDF中創(chuàng)建的類,hdfs:///user/hive/warehouse/hiveudf-1.0-SNAPSHOT.jar
為上傳JAR包到HDFS的路徑。
執(zhí)行以下命令,使用UDF函數(shù)。
該函數(shù)與內(nèi)置函數(shù)使用方式一樣,直接使用函數(shù)名稱即可訪問。
select myfunc("abc");
返回如下信息。
OK abc:HelloWorld
文檔內(nèi)容是否對(duì)您有幫助?