1. 程式人生 > >Java 呼叫Hive 自定義UDF

Java 呼叫Hive 自定義UDF

Hive 具有一個可選的元件叫做HiveServer,它允許通過在一定的埠訪問Hive.

將自定義的UDF的jar拷貝到安裝的hive伺服器中(如 /home/hadoop下)

具體的不囉嗦了,看程式碼吧!、

package com.hive.client;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class HiveClientUDF {
	private static String driverName = "org.apache.hive.jdbc.HiveDriver";
    private static String url = "jdbc:hive2://192.168.150.162:10000/default";
    private static String sql = "";
    private static ResultSet res;
	public static void main(String[] args) throws SQLException, ClassNotFoundException {
		// TODO Auto-generated method stub
         
		 Connection conn = null;
         Class.forName(driverName);
		 //預設使用埠10000, 使用預設資料庫,使用者名稱密碼預設  hadoop 伺服器登入使用者名稱  dh!123456登入密碼
         conn = DriverManager.getConnection(url, "hadoop", "dh!123456");
         String tableName = "vehicle_pass";
	   	 Statement stmt = conn.createStatement();
	     //將cityudf.jar加入到HIVE類路徑下
		 sql = "add jar /home/hadoop/cityudf.jar";
   	     stmt.execute(sql);
   	     //加入到classpath下
   	     sql = "create temporary function cityudf as 'com.hive.utf.CityUDF'";
   	     stmt.execute(sql);
   	     //使用自定義UDF cityudf
	   	 sql = "select  key,kkNO,cityudf(key) as city from " + tableName;
         System.out.println("Running:" + sql);
	     res = stmt.executeQuery(sql);
	     System.out.println("執行“select * query”執行結果:");
	     while (res.next()) {
	    	  
	         System.out.println(res.getString(1) + "\t" +":" + res.getString(3));
	           
	      } 
	   	  stmt.close();
	   	  conn.close();  
	}

}
執行結果:
1522301_20150417103242404_黑A01BCI	:哈爾濱
1522301_20150417103242494_黑A013AA	:哈爾濱
1522301_20150417103242614_黑A01GHI	:哈爾濱
1522301_20150417103242616_黑A01GLJ	:哈爾濱
1522301_20150417103242617_黑A01E5G	:哈爾濱
1522301_20150417103242623_黑A01HDK	:哈爾濱
1522301_20150417103242625_黑A018MM	:哈爾濱
1522301_20150417103242758_黑A015KD	:哈爾濱

http://blog.csdn.net/allen_oscar/article/details/45146913

相關推薦

Java 呼叫Hive 定義UDF

Hive 具有一個可選的元件叫做HiveServer,它允許通過在一定的埠訪問Hive. 將自定義的UDF的jar拷貝到安裝的hive伺服器中(如 /home/hadoop下) 具體的不囉嗦了,看程式碼吧!、 package com.hive.client; impor

hive----定義UDF 函式-----時間格式化以及取出雙引號的程式碼

一.UDF的描述 使用者自定義函式(UDF)是一個允許使用者擴充套件HiveQL的強大的功能。使用者可以使用Java編寫自己的UDF,一旦將使用者自定義函式加入到使用者會話中(互動式的或者通過指令碼執行的),它們就將和內建的函式一樣使用,甚至可以提供聯機幫助。

hive 定義udf函式

上一篇中介紹到了一些hive 中一些預設的function 但是在日常的開發需求中這個肯定是滿足不了我們的,下面介紹一下hive 的自定義function 廢話不多少了先寫個簡單的例子壓壓驚 首先給出工程依賴 <dependencies> <depen

Hive定義UDF函式--常用的工具類

註冊函式:將自定義函式打成jar包,上傳hdfs$hive>create function formattime as 'com.air.udf.FormatTimeUDF' using jar 'hdfs://mycluster/user/centos/air-hiv

hive定義UDF函式

一、自定義函式流程 要想在Hive中完成自定義函式的操作,要按照如下的流程進行操作: 定義Java類並實現org.apache.hadoop.hive.ql.exec.UDF——>覆寫evaluate——>將Java工程上傳到Hive所在伺服器(我這裡是Cen

Hive中如何添加定義UDF函數以及oozie中使用hive定義函數

步驟 strong 重啟 一個 文件夾 spa nlog hdfs share 直接來說操作步驟: 1. 修改.hiverc文件 在hive的conf文件夾下面,如果沒有.hiverc文件,手工自己創建一個。 參照如下格式添加: add jar /usr/loc

Hive(15):定義UDF

一、使用者自定義函式分類     1.UDF 使用者自定義格式轉化函式(一條資料輸入,一條資料輸出)     2.udaf 使用者自定義聚合函式(多條資料輸入,一條資料輸出)     3.udtf 使用者自

Hive資料型別、 explode、定義UDF

Hive資料型別、 explode、自定義UDF 一、基本型別 二、複雜型別 三、陣列型別 array   案例一、   元資料:    100,200,300    200,300,500   建表語句:create external table ex(vals array) ro

hive 定義函式UDF

1. 在Hive中給我們內建了很多函式 進入hive客戶端,檢視hive內建函式: hive > show functions; OK ! != % & * + - / < <= <=> <> = == > &g

Hive定義函式(UDF)的編寫及使用

前提條件: 1. 安裝好hadoop2.7.3(LInux環境下) 2. 安裝好Hive2.3.3,參考:Hive的安裝配置 3. 安裝好Maven(Windows環境下)參考:Maven安裝 4. 安裝好eclipse(Windows環境下)   Hive自定義函

java通過JRI呼叫R定義指令碼

自定義R指令碼作為資料引擎,用java執行: package rJava; //import org.rosuda.JRI.REXP; import org.rosuda.JRI.Rengine; public class DemoRJava {

Hive定義函式(UDF、UDAF)

當Hive提供的內建函式無法滿足你的業務處理需要時,此時就可以考慮使用使用者自定義函式。 UDF 使用者自定義函式(user defined function)–針對單條記錄。 建立函式流程 1、自定義一個Java類 2、繼承UDF類 3、重寫e

hive筆記-定義UDF

1、定義自己的UDF函式package com.hihi.hive; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; public class HelloWord

java 中的 定義viewUtils框架

exce stack wid policy his tools line idg 字節碼 在前面學習的基礎上,我們自己編寫一個ViewUtils註解框架類,不清楚的原理看前面的源代碼 package im.weiyuan.com.viewutils; import

java使用poi定義excel標題頭並導出(springmvc+poi)

image borde osi 刪除線 日期格 idt lin top 使用 項目使用的是jeecg開源框架(springmvc+spring+hibernate+。。。。。。等)此代碼僅供參考!如有更好的意見或建議可留言。 1 controller 層 2

Hive 定義函數

服務器 數據 += img clas xtend 分享圖片 定義 com hive 支持自定義UDF,UDTF,UDAF函數 以自定義UDF為例: 使用一個名為evaluate的方法 package com.hive.custom; import org.apache.

java創建定義類的數組

out char string 我想 想是 應該 字母 開始 鄰接矩陣 今天在學圖論的最小生成樹,開始一直在想是用鄰接矩陣還是關聯矩陣來表示圖,但是發現這樣都會有好多空間浪費。於是我就自定義一個邊的類,裏面包含了權值,關聯的端點1,端點2,和圖的表示字母。發現我想創建11條

spark定義udf輸入類型為array報錯

定義 true 輸入 ref sca use oot lec 兩個 定義udf如下 val list2string = udf { (style: Array[String], num: Array[Long]) => style.zip(num).map(t

HIVE定義函數

-m .text file nat UNC world from tex fields UDF 操作單個數據行,產生單個數據行;1.[hadoop@h91 hhh]$ vi TimeFormat.javaimport java.sql.Date;import java.t

java 圖片的定義大小

ipa apach logger private idt except clas 取圖 ont java 小功能,進行圖片的自定義大小 package com.project.video.controller; import java.awt.Color; import