




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
自定義表生成函數表生成函數概述自定義表生成函數使用自定義表生成函數01
表生成函數概述表生成函數概述UDTF,是UserDefinedTable-GeneratingFunctions,一眼看上去,貌似是用戶自定義生成表函數,這個生成表不應該理解為生成了一個HQLTable,貌似更應該理解為生成了類似關系表的二維行數據集。
什么是UDTF表生成函數概述繼承org.apache.hadoop.hive.ql.udf.generic.GenericUDTF。實現initialize,process,close三個方法如何實現UDTFUDTF首先會調用initialize方法,此方法返回UDTF的返回行的信息(返回個數,類型)。初始化完成后,會調用process方法,對傳入的參數進行處理,可以通過forword()方法把結果返回。最后close()方法調用,對需要清理的方法進行清理。02
自定義表生成函數自定義表生成函數實現代碼:public
class
ExplodeMap
extends
GenericUDTF
{//進行清理
@Override
public
void
close()
throws
HiveException
{
//
TODO
Auto-generated
method
stub
}
//initialize,process方法}
自定義表生成函數
@Override
public
StructObjectInspector
initialize(ObjectInspector[]
args)
throws
UDFArgumentException
{
if
(args.length
!=
1)
{
throw
new
UDFArgumentLengthException("ExplodeMap
takes
only
one
argument");
}
if
(args[0].getCategory()
!=
ObjectInspector.Category.PRIMITIVE)
{
throw
new
UDFArgumentException("ExplodeMap
takes
string
as
a
parameter");
}
自定義表生成函數
ArrayList<String>
fieldNames
=
new
ArrayList<String>();
ArrayList<ObjectInspector>
fieldOIs
=
new
ArrayList<ObjectInspector>();
fieldNames.add("col1");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
fieldNames.add("col2");
fieldOIs.add(PrimitiveObjectInspectorFactory.javaStringObjectInspector);
return
ObjectInspectorFactory.getStandardStructObjectInspector(fieldNames,
fieldOIs);
}
自定義表生成函數
public
void
process(Object[]
args)
throws
HiveException
{
String
input
=
args[0].toString();
String[]
test
=
input.split(";");
for
(int
i
=
0;
i
<
test.length;
i++)
{
try
{
String[]
result
=
test[i].split(":");
forward(result);
}
catch
(Exception
e)
{
continue;
}
}
}
03
使用自定義表生成函數使用UDTF函數1、在select中使用UDTF:select
explode_map(properties)
as
(col1,col2)
from
my_table
不可以添加其他字段使用:selecta,explode_map(properties)as(col1,col2)frommy_table不可以嵌套調用:selectexplode_map(explode_map(properties))frommy_table不可以和groupby/clusterby/distributeby/sortby一起使用:selectexplode_map(properties)as(col1,col2)fromsrcgroupbycol1,col2使用UDTF函數2、結合lateralview使用select
src.id,
mytable.col1,
mytable.col2
from
src
lateral
view
e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新時期發揮內蒙古資源優勢的作用及建議
- 公司用人用工管理制度
- 公司統一財務管理制度
- 2025建筑工程土方回填分包合同
- 2025網簽版企業間借款合同樣本
- 江蘇開放大學2025年春服務營銷2多項選擇題題庫
- 廣西北海市2023?2024學年高二下冊期末教學質量檢測數學試卷附解析
- 北京市2023?2024學年高二下冊期末數學試卷附解析
- 安徽省安慶市2024-2025學年高二下冊期中考試數學試卷附解析
- 2024~2025學年 浙江省高二語文上冊11月期中試卷
- 部編版八年級語文下冊實踐性作業教案
- GB/T 12022-2014工業六氟化硫
- 2023年上海市學業水平物理合格性考試試卷
- GA 1732-2020警用無人駕駛航空器外觀制式涂裝規范
- 廻轉窯揮發法生產氧化鋅作業指導書
- 電氣焊(割)操作工安全生產責任制
- 學校學生評教表
- 風力發電場集電線路優化分析
- 2023高考地理高三一輪復習教學計劃和備考策略
- 挖掘機裝載機定期檢驗報告
- 新版現代西班牙語第二冊課后答案
評論
0/150
提交評論