hive写脚本传递参数
hive的本质也是一门编程语言,因此想办法使用循环,减少代码
因此在hive查询语句中,还是可以传入一些参数,减少重复代码的
select *
from
demo.demotable
where dt='20210217' and label='${hiveconf:label}'
limit 1000
上面的代码中label就是需要传入的参数,其实是都可以传入
row_number over...
因为row_unmber的优先级是在partition by 和 order by之后的,因此想要随机抽取数据的时候需要 让order by 后面是随机排序的
使用row_number over主要是按照某个column中的类别进行分组,然后抽取这组中的某几条,但是要随机抽取,否则每次可能会抽取到一样的数据.
select * from (
select *,row_number() over(partition by label order by rand()) rn
from demo.demotable where dt='20210103'
) r where r.rn <=50 -- 每类别抽50条
每天记录一点点,方便自己学习新的东西