bad indentation of a mapping entry
- title中缩进不正常,均要用tab缩进
warning: adding embedded git repository: themes/next
1 | warning: adding embedded git repository: themes/next |
1 | warning: adding embedded git repository: themes/next |
1 | Microsoft Windows [Version 10.0.19044.2006] |
1 | spark.sessionState.conf.setConfString("spark.sql.streaming.minBatchesToRetain", "5") |
grouping sets 要保证sets中每个组合中缺失的维度,不能包含null值
group语法增强,可以使用维度下标表示,但如果grouping sets不支持,只能写字段名
LEFT SEMI JOIN:左半开连接会返回左边表的记录,前提是其记录对于右边表满足ON语句中的判定条件。对于常见的内连接(INNER JOIN),这是一个特殊的,优化了的情况。大多数的SQL方言会通过in…exists结构来处理这种情况。

总结:
对待右表中重复key的处理方式差异:因为 left semi join 是 in(keySet) 的关系,遇到右表重复记录,左表会跳过,而 join on 则会一直遍历。
left semi join 中最后 select 的结果只许出现左表,因为右表只有 join key 参与关联计算了,而 join on 默认是整个关系模型都参与计算了。
https://cwiki.apache.org/confluence/display/Hive/Home#Home-GeneralInformationaboutHive
https://cwiki.apache.org/confluence/display/Hive/LanguageManual
from_unixtime(unix_timestamp(t.dt,'yyyymmdd'),'yyyy-mm-dd')
dt格式2019120100
from_unixtime(unix_timestamp(dt,'yyyyMMddHH') - 60*60, 'yyyy-MM-dd')
regexp_replace(date_sub(from_unixtime(unix_timestamp(t.dt,'yyyymmdd'),'yyyy-mm-dd'), 10), '-', '')
round(123.4567, 2)
1 | select hour(from_unixtime(event_timestamp/1000,'yyyy-MM-dd HH:mm:ss')) hour_time, count(distinct session_id) |
1 | regexp_replace('abc/d', '/', '') |
1 | get_json_object(json_str, '$.csu_id') |
1 | with temp_table as ( |
所以在通过count distinct判断字段的重复情况时,注意把相关字段的null附上值
1 | select count(*) |
1 | select a.f1, a.f2, b.f1, b.f2 |
1 | select sum(ct) |