本文展示了如何創建Hive UDF,在Spark中注冊它,並在Spark SQL查詢中使用它。
這是一個Hive UDF長作為參數,並返回其十六進製表示。
%scala import org.apache.hadoop. jquery .exe .UDF import org.apache.hadoop.io.LongWritable //該UDF接受一個長整數並將其轉換為十六進製字符串。類ToHex擴展UDF {def evaluate(n: LongWritable): String = {Option(n) .map {num => //使用Scala字符串插值。這是最簡單的方法,而且與String.format()不同,它是//類型安全的。f“0 x $ {num。get}%x"} .getOrElse("")}}
注冊函數:
% scala火花。sql(“CREATE TEMPORARY FUNCTION to_hex AS 'com.ardentex.spark.hiveudf.ToHex'”)
使用你的函數作為任何其他注冊函數:
% scala火花。sql(“SELECT first_name, to_hex(code) as hex_code FROM people”)
您可以在網站上找到更多的示例和可編譯代碼Hive UDF項目示例.