hive自定義函式 hive streaming

2022-08-18 21:27:12 字數 1456 閱讀 8078

任何支援標準輸入輸出特性的程式語言都可以使用streaming方式來實現mapreduce job,基本原理就是輸入從unix系統標準輸入,輸出使用unix系統的標準輸出。

streaming的實現需要transform()函式和using關鍵字,transform()的引數是表的列名,using關鍵字用於指定指令碼

注意:先將指令碼add file 進來

比如wordcount功能:

1    #

!/usr/bin/env python

2

3 import

sys4

5 for line in

sys.stdin:

6 line =line.strip()

7 words = filter(lambda

word: word, line.split())

8 for word in

words:

9 print

'%s\t%s

' % (word, 1)

2、使用python實現reducer,**檔案為word_count_reducer.py,**如下所示:

#!/usr/bin/env python

import sys

fromoperator import itemgetter

wc_dict ={}

for line insys.stdin:

line =line.strip()

word, count =line.split()

try:

count = int(count)

wc_dict[word] = wc_dict.get(word, 0) + count

exceptvalueerror:

pass

sorted_dict = sorted(wc_dict.items(), key=itemgetter(0))

for word, count insorted_dict:

print '%s\t%s' % (word, count)

3、輸出統計:

add file /home/hadoop/test928/wc_map.py /home/hadoop/test928/wc_reduce.py;

select transform(wc.word,wc.count) using

'python wc_reduce.py

'as word ,count from (select transform(line) using

'python wc_map.py

'as word, count from docs) wc;

**)hive streaming 使用的時候的一些心得

hive自定義函式

1.建立類,繼承udf package com.hivedemo.udf import org.apache.hadoop.hive.ql.exec.description import org.apache.hadoop.hive.ql.exec.udf 自定義hive函式 description...

Hive 自定義函式

返回 所有自帶的函式 show functions 返回對該函式的解釋 desc function spilt 返回對該函式的使用例子 desc function extended split1.udf user defined function datediff,date format 等函式 一...

Hive 自定義函式

hive 支援自定義udf,udtf,udaf函式 以自定義udf為例 使用乙個名為evaluate的方法 package com.hive.custom import org.apache.hadoop.hive.ql.exec.udf import org.apache.hadoop.io.in...