SQL
fanlying
这个作者很懒,什么都没留下…
展开
-
sparksql转换unix毫秒时间戳保留毫秒
背景:一般unix时间戳是10位精度到秒,但是有时需要13位精确到毫秒。对于13位长度需要转换成可读格式并保留毫秒,在sparksql中没有找到直接的转换方式。方案:select concat(from_unixtime(1559461463324/1000,'yyyy-MM-dd HH:mm:ss.'), 1559461463324%1000) as c1 ,to_timestamp(concat(from_unixtime(1559461463324/1000,'yyyy-MM-dd原创 2022-01-12 11:23:49 · 2818 阅读 · 0 评论 -
hive命令行显示当前数据库
在 hive命令行不知道当前数据库有时会带来麻烦。1、可以在hive命令行执行以下语句显示当前数据库:select current_database();2、可以设置hive属性在命令行显示当前数据库:set hive.cli.print.current.db=true;...原创 2018-05-16 17:10:20 · 19056 阅读 · 1 评论 -
在Oracle、MySQL中执行sql脚本生成hive建表语句
生成hive建表语句的首尾只需拼接,主要通过数据库元数据读取字段类型转换为hive中的类型。在MySQL中生成hive建表语句:SELECT CONCAT('create table ',@tbl_name,'(')UNION ALLSELECT CONCAT( COLUMN_NAME, ' ', CASE ...原创 2017-12-01 10:49:52 · 3743 阅读 · 0 评论 -
hive根据日期算哪一年的第几周(年周)以及算周几星期几
按照习惯,跨年的周中的在哪一年的天数多就算哪一年的周,可以通过以下sql判断跨年的周属于哪一年,实现得到前一天所在的年周select year(date_sub(next_day(date_sub(current_date,1),'MO'),4))*100+weekofyear(date_sub(current_date,1));例如:今天是2019-03-02,前一天是2019-0...原创 2019-03-02 17:42:31 · 15611 阅读 · 4 评论 -
hive列转行,指定字段顺序,实现转置
建测试表create table test_k_v (k string , v double) row format delimited fields terminated by ',';插入测试数据insert overwrite table test_k_v select 'day',1.3 union all select 'week',3.8 union a...原创 2019-03-26 10:59:10 · 10884 阅读 · 0 评论 -
增量抽取到hive过程中的监控
前提:分区字段统一为ds,适用于常规增量抽取,通过创建和更新时间抽取。#!/bin/bash# 适用于常规增量抽取,通过创建和更新时间抽取# 手工填写以下参数:# 分区表达式,hive语法:pt_expr# 主键字段,联合主键写id1,id2,id3:pk# 非分区表增量数据量阈值,分区表不用管:inc_cntset -e timer_start=`date "+%Y-...原创 2019-07-08 17:53:41 · 852 阅读 · 0 评论