zoukankan      html  css  js  c++  java
  • Hive脚本中切勿使用/**/注释

    Hive脚本中切勿使用/**/注释

     

    Hive脚本的注释目前好像只有 -- ,我之前在做初版数据的时候 使用NotePad++ 习惯性的有时候注释会写成 /**/ ,然后就引发了问题

    脚本上传到hue,加入调度,调度正常执行 不报错,但是应该有的数据却为空!!! 奇了怪了.... (反复执行了好多遍,都没有数据,脚本都没有问题呀  一段一段copy执行的时候都正常的)

    再仔细看看 ,原因问题出在注释上,在hive脚本里面我不小心留了两行注释 格式为 /* 注释内容 */ 的内容

    造成的结果:  /*注释内容*/ 前面的脚本内容正常执行,/* 注释内容*/ 后面的脚本内容统统没有执行,所以很多该有的数据都为空了....

    错误脚本内容示例:

    insert.hql

    use bgda_hw_stg;
    set hive.auto.convert.join=false;
    
    drop table testdata ;
    create table testdata(
    createUser string
    ,createTime string
    ,updateUser string
    ,updateTime string
    ) row format delimited fields terminated by '01';
    
    insert overwrite table testdata
    select 
    ,'小仙女' as createUser
    ,cast(from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss') as string)as createTime 
    ,'小天使' as updateUser
    ,'' as updateTime
    ;
    
    /* 将T+1数据插入testdata_bak表中 testdata_bak表在初始化的时候已经创建,目前已存在于bgda_hw_stg库中*/
    insert into testdata_bak select * from testdata;
    

      

    以上脚本信息中:由于注释方式

    /* 将T+1数据插入testdata_bak表中 testdata_bak表在初始化的时候已经创建,目前已存在于bgda_hw_stg库中*/

     导致 insert into testdata_bak select * from testdata; 这段hql 不会被执行,但是整个调度也不会报错!!!

    所以这个一定要注意一下哦,注释方式一定要正确的写,如果发现脚本执行没有报错 但是该有的数据没有 可以查看以下脚本中是否存在不规则的注释...(不过大部分数据错处应该是及脚本逻辑问题哈哈哈)

    正确示例:

    insert.hql

    use bgda_hw_stg;
    set hive.auto.convert.join=false;
    
    drop table testdata ;
    create table testdata(
    createUser string
    ,createTime string
    ,updateUser string
    ,updateTime string
    ) row format delimited fields terminated by '01';
    
    
    insert overwrite table testdata
    select 
    ,'小仙女' as createUser
    ,cast(from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss') as string)as createTime 
    ,'小天使' as updateUser
    ,'' as updateTime
    ;
    
    -- 将T+1数据插入testdata_bak表中 testdata_bak表在初始化的时候已经创建,目前已存在于bgda_hw_stg库中
    insert into testdata_bak
    select * from testdata;
    

     

  • 相关阅读:
    LeetCode #1021. Remove Outermost Parentheses 删除最外层的括号
    使用Maven运行测试提示Module sdk 1.5的解决方法
    Map.Entry使用详解
    c++基础(一)
    Python_正则表达式
    使用PIL生成验证码
    OpenCV_图像平滑
    OpenCV—图像阈值
    OpenCV形状变换
    使用OpenCV读写图片
  • 原文地址:https://www.cnblogs.com/DFX339/p/11706808.html
Copyright © 2011-2022 走看看