大数据Spark SQL常用语言

  • 建表
-- 分区表建表
create table if not exists project1.test1_liqb_dt (
    id bigint comment 'id',
    name string comment '姓名'
)partitioned by (
    ds bigint comment '日分区')
comment 'test'
lifecycle  31  ;

-- 非分区表建表
create table if not exists project1.test1_liqb (
    id bigint comment 'id',
    name string comment '姓名'
)comment 'test'
lifecycle  31  ;
  • 展示表属性,展示表信息,展示表分区
# 显示表属性
desc test1_liqb_dt;
# 显示表分区
show partitions test1_liqb_dt;
  • 插入,重写,删除数据,删除分区,分区值改名
-- 重写数据
INSERT OVERWRITE TABLE test1_liqb_dt PARTITION(ds=20191229) 
SELECT id,name,rq FROM project1.test1_liqb_dt;

-- 追加数据
INSERT INTO TABLE test1_liqb_dt PARTITION(ds=20191229) 
SELECT id,name,rq FROM project1.test1_liqb_dt;

-- 删除表
drop table project1.test1_liqb_dt;

-- 删除/添加表分区
alter table project1.test1_liqb_dt drop/add partition (ds = 20191230);

-- 更改分区值名
alter table test1_liqb_dt partition (ds=20191230) rename to partition(ds=20200101);

需要注意的是,sparksql不支持delete和update操作,但我们可以变相用overwrite实现update,delete,比如这里删除id为1的数据,则可以自己overwrite自己

-- delete操作
INSERT OVERWRITE TABLE test1_liqb_dt PARTITION(ds=20191229) 
SELECT id,name,rq FROM project1.test1_liqb_dt
WHERE ds = 20191229 
AND id <> 1;
  • 通过文本文件上传下载数据
-- 数据上传:通过临时表的形式进行数据上传,分区表与非分区表多了一个partition
load data '/user/datacompute/hhy_dw/resources/13592/latest/travelimage.csv' table tdl_spark_test options( delimiter=',');
insert overwrite table hhy_dw.ods_chg_rt_dfs_gantry_travelimage_dt partition(ds=20200330) select * from tdl_spark_test;

-- 数据下载:导出到文件再在平台下载
create table tdl_0_0111 lifecycle 1 select id,name from project.table1;
export table tdl_0_0111 TO 'demo_export.csv' options(delimiter=',');

数据传输详情见我之前的博客:https://blog.csdn.net/mochou111/article/details/104840700

select getHZ('FHK匹配JS汉字123fds符合东方  *** 飞机的回复、31 3256323232若峰的算法555555%%%7,,,   ');

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章