hive常用语句命令及参数设置

  • 1. hive从集群中查找数据并导出到文件中,通过sz 命令将文件导出到本地电脑中

hive -e "SELECT  *  WHERE  dt='20170101'  and id='123';" > testdata.txt

  • 2.Hive regexp_replace函数(剔除空格)  :regexp_replace(address,' ','')
  • 3.Excel时间戳转换公式:=TEXT((C4/1000+8*3600)/86400+70*365+19,"yyyy-mm-dd hh:mm:ss")
  • 4.Hive substr 函数:从第一位开始,截取3位字符SELECT * From test.table_name WHERE dt='20190326'   and (substr(address,1,3)='北京市' ;
  • 5.EXCEL导入hive表:1.将格式转为.csv (utf-8格式)  2.分隔符改为',' 3.表格式为text文本
  • 6.按照特殊字符分割字符串:split(a.citynameen,'_')[0] as citynameen  适用于可以有特殊字符'_',也可以没有特殊字符的场景。
  • 7.按照指定特殊字符截取字符串:(鹤岗_hegang ->鹤岗)select substr(cityname,0,instr(cityname,'_')-1) as cityname from tablename where dt='20190218'; 适用于统一格式的包含特殊字符的截取
  • 8.单一字段去重:ROW_NUMBER() OVER(PARTITION BY COLUMN1 ORDER BY COLUMN2) rank 将COLUMN1相同的字段按照 COLUMN2进行排序,rank代表重复数量,取rank=1,完成去重
  • 9.创建分区并加载数据:ALTER TABLE table_name ADD IF NOT EXISTS partition(dt='20190101') LOCATION 'hdfs://node01/wh/test/20190101';"
  • 10.txt文件插入hive表:LOAD DATA INPATH '/wh/test/abc.txt' INTO TABLE table_name PARTITION(dt='20181129');
  • 11.行转列(根据第1,2列的内容,将第3列聚合在一起,按照逗号分隔):select col1,col2,concat_ws( ' , ' , collect_set ( col3 )  )  from  tablename  group by col1 , col2;

  • 12.列转行:SELECT masterhotelid,hid,status FROM table_name  LATERAL VIEW explode(split(hotelid,',')) adTable as hid WHERE dt='20190720';

  • 13.字段内容含特殊字符导致结果串行(对特殊字符进行替换):regexp_replace(字段, '\n|\t|\r', '')

  • 14.hive语句执行时间过长,数据量大。添加如下参数,先进行map阶段,后进行reduce阶段,避免占用资源过大,程序卡死:

    SET mapreduce.job.reduce.slowstart.completedmaps=1.00;

  • 15.hive查询超大数据量join是参数设置(hive on spark):

SET mapreduce.map.memory.mb=10240;

SET mapreduce.map.java.opts=-Xmx10g;

SET mapreduce.reduce.memory.mb=8192;

SET mapreduce.reduce.java.opts=-Xmx8g;

  • 16.hive查询内存溢出时添加参数:

    SET mapreduce.map.memory.mb=10240;

    SET mapreduce.map.java.opts=-Xmx10g;

    SET mapreduce.reduce.memory.mb=8192;

    SET mapreduce.reduce.java.opts=-Xmx8g;

  • 17.hive表格式不一致导致数据插入失败时,如果是lzo文件设置参数:

    set hive.exec.compress.output=true;

    set mapred.output.compression.type=BLOCK;

    set mapred.output.compression.codec=com.hadoop.compression.lzo.LzopCodec;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值