Fork me on GitHub

Hive笔记之宏(macro)

 

一、啥是宏

宏可以看做是一个简短的函数,或者是对一个表达式取别名,同时可以将这个表达式中的一些值做成变量调用时传入,比较适合于做分析时为一些临时需要用到很多次的表达式操作封装一下取个简短点的别名来调用。宏只在当前会话有效,当退出hive控制台再进入时上次创建的宏就丢失了,如果需要永久保留某个宏,可以将其加入到${HIVE_HOME}/.hiverc文件中。

 

二、创建宏

创建宏的语法:

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

一些例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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)

三、删除宏

删除宏的语法:

1
DROP TEMPORARY MACRO [IF EXISTS] macro_name;

删除宏的例子:

1
2
3
4
5
6
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中常被忽视的利器——宏

 

.

posted @   CC11001100  阅读(4364)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示