zoukankan      html  css  js  c++  java
  • 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中常被忽视的利器——宏

    .

  • 相关阅读:
    洛谷P1070 道路游戏
    洛谷P1556 幸福的路
    洛谷P1457 城堡 The Castle
    洛谷P1298 最接近的分数
    2017-9-13 NOIP模拟赛[xxy]
    洛谷P3405 [USACO16DEC]Cities and States省市
    洛谷P1549 棋盘问题(2)
    洛谷P1578 奶牛浴场
    洛谷P2073 送花
    洛谷P3797 妖梦斩木棒
  • 原文地址:https://www.cnblogs.com/cc11001100/p/10232531.html
Copyright © 2011-2022 走看看