
hive
lhxsir
Unto a full grown man.
展开
-
SQL正则表达式
筛选出custom_id中全部是数字:select * from om_order where custom_id rlike '^\\d+$' ;原创 2021-07-05 16:57:36 · 1449 阅读 · 0 评论 -
Hive解析json格式字段
新建hive表create external table asmp.json_test(id string,info string)row format delimited fields terminated by '\t' lines terminated by '\n'location 'hdfs://nameservice1/user/asmp/json_test'插入数据1 [{"name":"Tom","city":"Beijing"},{"name":"Jack", "city原创 2021-03-18 17:11:57 · 625 阅读 · 0 评论 -
核对发票数据过程
前两天发票逻辑变动,需要去掉part_code重复的经销商数据,具体做法如下:(1)生成一张去掉重复的经销商表clean_tm_sst(2)计算发票的逻辑关联这张表---------------------------漫长的核对过程------------------------------(1)初步核对:获取重复的part_code对应的经销商代码,然后到结果表中查询是否筛选成功(2)核对发票金额是否一致:由于是两年前的逻辑,核对过程就像是回忆过去经历。首先从数据库中拉取某家经销商2月份的原创 2021-03-03 14:47:42 · 1056 阅读 · 0 评论 -
Hive列转行总结
有张表分成八种情况,分别为:账面库存X类标准库存X类待核销库存X类待冲销库存X类账面库存Y类大众标准库存Y类待核销库存Y类待冲销库存Y类于是考虑先使用拼接函数生成如下样式:建立测试表:CREATE table student_test( stu_id string comment '学号', stu_name string comment '姓名', stu_type string comment '类型', courses string comment '各个科目',原创 2020-10-22 18:19:18 · 1016 阅读 · 0 评论 -
Sqoop导入HDFS格式问题
(1)使用Text格式sqoop import --connect jdbc:oracle:thin:@//IP:1521/ASMP2 --username --password --query "SELECT * FROM SBPOPT.TT_MAINTENANCE_TIMES_CORRECT where \$CONDITIONS" --fields-terminated-by '\t' --delete-target-dir --target-dir /user/asmp/hive/asmp/tt_m原创 2020-09-25 10:34:11 · 697 阅读 · 0 评论 -
Hive窗口函数的使用场景
(1)oracle使用KEEP()函数,改写成hive语句(2)group by和max函数一起使用的坑:一张剧目演出表,表中有(剧目ID,剧目名称,演出单位,票房),问:查询出每个演出单位票房最高的剧目名称。(听起来很简单吧)现在我们看看数据:(name是剧目名称,desp是演出单位,price是票房)错误的使用方式:对比后发现name字段信息不对。。。虽然找到的是最大的price,但是与之匹配的剧目名称name却不对应,而是group by分组后的第一条记录的基本信息。最终正确H原创 2020-09-09 11:27:45 · 684 阅读 · 0 评论 -
hive sql使用总结
Hive设置多个reduce方法:set mapred.reduce.tasks = 2;(1) order by/distribute by/sort by/cluster by区别order by #全局排序 sort by #局部排序,单独reduce中进行排序distribute by #分桶排序,相同KEY的记录被划分到一个Reducecluster by =distribute by+ sort by #分桶排序cluster by id,name 默认是升序,且不可指定asc或de原创 2020-07-07 22:43:25 · 747 阅读 · 0 评论 -
时间戳负数转换问题
由于甲方人员使用sqoop抽数据,把时间类型自动转换成了时间戳,而且是毫秒级别的。。于是我们尝试使用hive的时间戳方法转换成日期select from_unixtime(cast(-2114409600000/1000 as int),'yyyy-MM-dd HH:mm:ss')--1903-01-01 00:00:00select from_unixtime(cast(-220901...原创 2020-04-10 13:32:32 · 7390 阅读 · 2 评论 -
Hbase表使用总结
业务逻辑比较复杂,有很多是根据VIN码来判断的,于是使用hbase并且把VIN码作为rowkey进行设计。Column Family设计原则:一个静态数据,一个动态数据。VERSIONS设计原则:看历史数据保留价值。(1)创建Hbase表create 'testTable',{NAME=>'info', VERSIONS => 1},{NAME => 'dt', VERS...原创 2020-03-25 17:35:50 · 256 阅读 · 0 评论 -
Spark2 SQL动态分区报错
报错信息如下:ERROR yarn.ApplicationMaster: User class threw exception: org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: Number of dynamic partitions created is 3464...原创 2019-08-30 13:46:22 · 2198 阅读 · 0 评论 -
Hive常用の方法二
增加hive执行内存SET mapreduce.map.memory.mb=8192;SET mapreduce.map.java.opts='-Xmx6552M'; SET mapreduce.reduce.memory.mb=8192; SET mapreduce.reduce.java.opts='-Xmx6552M'; SET mapreduce.child.map.java.o...原创 2019-08-15 17:43:00 · 355 阅读 · 0 评论 -
Hive常用の方法一
Create 建表-- 直接建表create table if not exists student(id string comment 'id ',name string comment '名字' )partitioned by (date string comment '日期 ' );-- 复制表结构+数据create table if not exists new_t...原创 2019-08-15 17:05:49 · 125 阅读 · 0 评论 -
Spark SQL处理小文件
方法一 使用repartition(spark2.4之后)spark.sql("create table table1 as select /*+ REPARTITION(4) */ age,count(*) from table_1 where age >18 ")方法二 使用hive默认合并方式insert overwrite table table_1 select * fr...原创 2019-08-14 17:29:40 · 3081 阅读 · 1 评论 -
hive外部表文件丢失
又是新的一周,倒杯茶,打开电脑查看集群运行情况,没有一个程序报错?刚开心一会儿,结果查看数据好多空值??又是忙碌的早上,经过排查发现错误’/user/hive/tm_oil_level’路径不存在不可能啊,这是hive外部表路径,即使删除外部表也不会删除该目录,难道谁偷偷把该目录删除了,也没道理啊!新建外部表create external table if not exists tm_o...原创 2019-05-27 11:00:21 · 897 阅读 · 0 评论 -
集群迁移hive表(无建表语句)
生产环境账号回收,需要把所有数据表迁移到测试环境!!!上百张表,已经找不到原始建表语句,只能自己想办法了。百度很久,最终决定通过shell把从集群上把建表语句下载下来:新建list_tables.sqluse db;show tables;新建show_create.sqluse db;show create table ${hiveconf:table};download_...原创 2019-05-22 17:48:14 · 270 阅读 · 0 评论 -
hive表数据迁移(生产集群->测试集群)
由于需要在测试环境测试hive表逻辑,但是测试集群没有相关表及数据,所以采用最简单的方式:通过hue从生产集群下载文件,然后通过hue上传到测试集群但是。。hive表是分区的而且每个分区下面都N多个小文件,于是编写shell脚本:#! /bin/bashmkdir -p ./tmp/tablerssc_array=("201901" "201902" "201903" "201904...原创 2019-05-17 11:28:37 · 722 阅读 · 0 评论 -
使用Hive处理敏感字段
使用regexp_replaceregexp_replace(address,"","")(1)匹配所有字符:select regexp_replace(address, '.*', '***') from table;(2)匹配指定字符:select regexp_replace('2016-06-05', '-', '') from table;(3)匹配特殊字符(换行符):...原创 2019-05-20 14:58:19 · 2163 阅读 · 0 评论 -
Hive窗口函数使用
平常使用 hive或 mysql主要用聚合函数但对于某些偏分析的需求,group by可能很费力,子查询很多这个时候就需要使用窗口分析函数了~比如:最近一次行驶里程select max(ded.bill_date),ded.vin,ded.current_milemetrefrom db.tt_repair_deed ded where ded.negabalance_sign =...原创 2019-03-27 17:46:11 · 473 阅读 · 0 评论 -
hive增删改查操作
增加数据:(1)查询表数据再插入(覆盖)hive> insert into table dhi_sk_repair_deed_test select * from dhi_sk_repair_deed limit 100;hive> insert overwrite table dhi_sk_repair_deed_test select * from dhi_sk_repair_de...原创 2018-03-21 12:02:20 · 4471 阅读 · 0 评论 -
Hive日期函数
(1)unix_timestamp('2018-12-05 08:45:17') 作用:统计从1970年开始到现在的秒数(2)from_unixtime(1525509615,'yyyyMMdd') 作用:日期函数UNIX时间戳转日期函数(3)to_date('2018-12-08 10:08:01') 作用:返回日期时间字段中的日期部分(4)year,month,day('2018-12-08 ...原创 2018-04-02 10:27:43 · 571 阅读 · 0 评论 -
Hive字符串函数
(1)length('abcedfg') 作用:返回字符串的长度 (2)reverse('abcedfg') 作用:返回字符串的反转结果(3)concat(‘abc’,'def’,'gh’) 作用:返回输入字符串连接后的结果,支持任意个输入字符串 concat_ws(‘,’,'abc’,'def’,'gh’) 作用:返回输入字符串连接后的结果,','分隔符(4)substr,substri...原创 2018-04-02 11:00:50 · 10864 阅读 · 0 评论 -
Hive数值计算函数
(1)round(45.666,2) 作用:四舍五入,保留2位小数 ceil(45.6) 作用:向上取整 floor(45.6) 作用:向下取整(2)rand() 返回一个0到1范围内的随机数(3)exp(double a) 返回自然对数e的a次方 ln(double a)返回a的自然对数(4)log10(double a) 返回以10为底的a的对数 log2(double a...原创 2018-04-02 12:48:49 · 5736 阅读 · 0 评论 -
Hive统计函数
(1)count(*) 作用:统计检索出的行的个数,包括NULL值的行 count(t) 作用:返回指定字段的非空值的个数 count(distinct t) 作用:返回指定字段的不同的非空值的个数(2)sum(t) 作用:统计结果集中col的相加的结果 sum(distinct t) 作用:统计结果中col不同值相加的结果(3)avg(t) 作用:统计结果集中col的平均值 ...原创 2018-04-02 13:30:33 · 5653 阅读 · 0 评论 -
Hive分区查询
显示表分区:hive> show partitions table_name;根据表分区查询数据:hive> select * from table_name where partition_date='2018-04-10' ;原创 2018-04-13 16:12:32 · 63304 阅读 · 0 评论 -
java api读取集群hive数据(kerberos认证)
引用maven <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>1.1.0</version> </depe...原创 2018-05-31 10:04:27 · 5956 阅读 · 0 评论 -
Hive映射Hbase关联表
Hive映射Hbase表CREATE EXTERNAL TABLE DAC_test01(rowkey STRING, name STRING, address STRING)ROW FORMAT SERDE 'org.apache.hadoop.hive.hbase.HBaseSerDe' STORED BY 'org.apache.hadoop.hive.hbase.HBaseSto...原创 2018-07-18 14:03:22 · 961 阅读 · 0 评论 -
hive统计parquet表报错
hue执行:SELECT count(*) FROM tt_sales_order;首先查看表源数据:parquet列式存储格式,所以优先统计某一列:SELECT count(salesorder_id) FROM tt_sales_order;原创 2018-11-23 16:24:48 · 874 阅读 · 0 评论 -
hive某个字段中包括\n(和换行符冲突)
用spark执行SQL保存到Hive中: hiveContext.sql("insert overwrite table test select * from aaa")执行完成,没报错,但是核对结果的时候,发现有几笔数据超出指定范围(实际只包含100/200)最终排查到是ret_pay_remark 字段包含换行符,解决方案:执行SQL中把特殊字符替换掉regexp_replace(...原创 2018-11-23 10:13:21 · 22074 阅读 · 5 评论 -
oracle常用命令(hive转换)
字段类型:名称:SERIES_NAME VARCHAR2(200)数字:ONWAY NUMBER标识:FLAG NUMBER(1)日期:DATE_DAY VARCHAR2(20)create table CUSTOMER_COUNT( UPDATE_DATE DATE not null, RSSC_ID VARC...原创 2018-11-23 16:23:41 · 2767 阅读 · 1 评论 -
使用sqoop从hive导入oracle报错
新建shell脚本 hive2oracle.sh#!/bin/bashsqoop export --connect jdbc:oracle:thin:@//10.10.10.10:1521/DB --username user --password 123456 --table DB.TT_REPAIR_PART -m 4 --input-fields-terminated-by '\t'...原创 2019-03-20 19:46:27 · 905 阅读 · 0 评论 -
Hive表删除&清空数据
(一)删除内部表中数据(保留表结构)truncate table 表名; (二)删除外部表中数据(保留表结构)由于外部表不能直接删除,所以用shell命令执行#!/bin/bashtemp=$(date +%Y-%m-%d)temp2=$(date -d "-1 day" +%Y-%m-%d)hdfs dfs -rm -r /user/hive/test_table/partiti...原创 2019-03-18 12:22:04 · 48835 阅读 · 0 评论 -
Hue上执行hive的sql脚本
新建workflow选择Actions里面的HiveServer2 Script拖拽即可选择写好的脚本hive2hbase.sqluse database;CREATE TEMPORARY TABLE test_dhb_lab as select * from dhb_tt_lab;INSERT into TABLE dhb_tt_lab select li.vin,(li.c_n...原创 2019-03-19 09:25:38 · 5491 阅读 · 4 评论 -
hive创建表
(1)创建(内部)表hive> create table table01(ts bigint,line string) ;(2)创建一个新表,复制表结构和数据hive> create table table02 as table01;hive> create table table02 as select * from table01 limit 10;(3)...原创 2018-03-21 11:16:11 · 708 阅读 · 0 评论