本文將展示如何創建一個蜂巢UDF,注冊在火花,火花SQL查詢並使用它。
這是一個需要一個蜂巢UDF長作為參數,並返回它的十六進製表示。
% scala org.apache.hadoop.hive.ql.exec進口。進口org.apache.hadoop.io UDF。LongWritable / /這個UDF需要很長整數,並將其轉換為十六進製字符串。類ToHex延伸UDF {def評估(n: LongWritable):字符串= {(n) . map選項{num = > / /使用Scala字符串插值。這是最簡單的方法,/ /類型安全的,不像String.format ()。f“0 x $ {num。}% x”} .getOrElse (" ")}}
注冊功能:
% scala火花。sql(“創建臨時函數to_hex com.ardentex.spark.hiveudf.ToHex”)
用你的注冊功能和其他功能:
% scala火花。sql(“選擇first_name、to_hex(代碼)hex_code從人”)
你可以找到更多的例子和compilable代碼示例蜂巢UDF項目。