大數據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,,,   ');

 

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