Hive之宏

一、啥是宏

宏可以看做是一個簡短的函數,類似於自定義函數,或者是對一個表達式取別名,同時可以將這個表達式中的一些值做成變量調用時傳入,比較適合於做分析時爲一些臨時需要用到很多次的表達式操作封裝一下取個簡短點的別名來調用。宏只在當前會話有效,當退出hive控制檯再進入時上次創建的宏就丟失了,如果需要永久保留某個宏,可以將其加入到${HIVE_HOME}/.hiverc文件中。

二、創建宏

創建宏的語法:

CREATE TEMPORARY MACRO macro_name([col_name col_type, ...]) expression;

一些例子(大寫的都是hive中的關鍵字):

hive> CREATE TEMPORARY MACRO fixed_number() 42;

OK

Time taken: 0.053 seconds

hive> SELECT fixed_number();

OK

42

Time taken: 0.339 seconds, Fetched: 1 row(s)



hive> CREATE TEMPORARY MACRO string_len_plus_two(x string) length(x) + 2;

OK

Time taken: 0.106 seconds

hive> SELECT string_len_plus_two("foobar");

OK

8

Time taken: 0.533 seconds, Fetched: 1 row(s)



hive> CREATE TEMPORARY MACRO simple_add (x int, y int) x + y;

OK

Time taken: 0.041 seconds

hive> SELECT simple_add(1, 1);

OK

2

Time taken: 0.403 seconds, Fetched: 1 row(s

)

三、刪除宏

刪除宏的語法:

DROP TEMPORARY MACRO [IF EXISTS] macro_name;

刪除宏的例子:

hive> DROP TEMPORARY MACRO foo;

OK

Time taken: 0.029 seconds

hive> DROP TEMPORARY MACRO IF EXISTS foo;

OK

Time taken: 0.074 seconds

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章