1. 程式人生 > >Hive筆記之巨集(macro)

Hive筆記之巨集(macro)

 

一、啥是巨集

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

 

二、建立巨集

建立巨集的語法:

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

一些例子:

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

 

相關資料:

1. Create Temporary Macro

2. Hive中常被忽視的利器——巨集

 

.