hive/spark用法记录
2023-12-15 08:28:55
1. cast()更改数据类型
cast(column_name as type)
2. get_dt_date()自定义日期操作函数(返回不带横线的日期)
select get_dt_date();–获取当前日期,返回 20170209
select get_dt_date(get_date(-2));–获取当前日期偏移,转为不带横杆的格式
select get_dt_date(‘2017-02-02’,-2);–20170131
3.ROW_NUMBER(),它为结果集的分区中的每一行分配一个连续的整数。 行号以每个分区中第一行的行号开头。
ROW_NUMBER() OVER (
[PARTITION BY partition_expression, ... ]
ORDER BY sort_expression [ASC | DESC], ...
)
PARTITION BY子句将结果集划分为分区。 ROW_NUMBER()函数分别应用于每个分区,并重新初始化每个分区的行号。PARTITION BY子句是可选的。如果未指定,ROW_NUMBER()函数会将整个结果集视为单个分区。ORDER BY子句定义结果集的每个分区中的行的逻辑顺序。 ORDER BY子句是必需的,因为ROW_NUMBER()函数对顺序敏感。
4.根据分区查询partitions where
5.插入或覆写数据(INSERT INTO | INSERT OVERWRITE)
执行insert into和insert overwrite操作前需要具备目标表的修改权限(Alter)及源表的元信息读取权限(Describe)。授权操作请参见权限列表
6. 千分位函数percentile(), percentile_approx()
7. row_number() over (order by column_name)输出结果会基于order by排序
select table.*,row_number() over (order by score) as rank
from
(
select * from table1
limit 100
) table2
8.extend[‘dict’] as dict_name
extend把原本是字典的序列扩展成新的一列
比如
user_id | gender |
---|---|
1 | gender:female |
2 | gender:male |
extend['gender'] as gender
| user_id | gender |
| 1 | female |
| 2 | male |
9. ${yyyyMMdd,1, day}’
1表示加一天,比如输入 20220801,那么上面的变量出来的日期为20220802;
而如果是-1,则表示往前一天,比如输入20220801,那么上面的变量出来的日期为20220731
10. spark.sql.autoBroadcastJoinThreshold、spark.sql.broadcastTimeout
这个目前还不太清楚具体场景,记录下
属性 | 默认值 | 描述 |
---|---|---|
spark.sql.broadcastTimeout | 300 | 广播等待超时时间,单位秒 |
spark.sql.autoBroadcastJoinThreshold | 10485760 (10 MB) | 最大广播表的大小。设置为-1可以禁止该功能。当前统计信息仅支持Hive Metastore表 |
文章来源:https://blog.csdn.net/eight_Jessen/article/details/126022722
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!