在分区表中使用不同建表方式,hive和spark-sql中insert overwrite data现象不同。

1.问题出现过程

1)spark-sql建表

CREATE TABLE t_using
(`user_no` STRING, `tt_slotid_req` STRING, `ks_slotid_req` STRING
,`model` STRING
, `follow_time` STRING, `bind_time` STRING, `reg_slotid` STRING
, `geo_show` STRING, `ip_show` STRING, `model_show` STRING, `tt_bid_mean` STRING, `pday` STRING
)
USING orc
OPTIONS (
  `serialization.format` '1'
)
PARTITIONED BY (pday);

2)spark-sql插入数据

insert overwrite table t_using partition(pday) 
select * from  t0
where pday>='20220327' ;

3)spark-sql再次插入数据

insert overwrite table t_using partition(pday) 
select * from  t0
where pday='20220325' ;

现象:t_using表中pday>='20220327'被删除,只存在最近一次插入的数据pday='20220325'

4) hive中插入数据

insert overwrite table t_using partition(pday) 
select * from  t0
where pday='20220326' ;

现象:t_using表中pday='20220325'未被删除,并新增分区pday='20220326'

5) hive建表

CREATE TABLE t_using
(`user_no` STRING, `tt_slotid_req` STRING, `ks_slotid_req` STRING
,`model` STRING
, `follow_time` STRING, `bind_time` STRING, `reg_slotid` STRING
, `geo_show` STRING, `ip_show` STRING, `model_show` STRING, `tt_bid_mean` STRING, `pday` STRING
)
USING orc
OPTIONS (
  `serialization.format` '1'
)
PARTITIONED BY (pday);

该方式在hive中并不能建表;

6) 常见建表语句

CREATE TABLE t_using
(`user_no` STRING, `tt_slotid_req` STRING, `ks_slotid_req` STRING
,`model` STRING
, `follow_time` STRING, `bind_time` STRING, `reg_slotid` STRING
, `geo_show` STRING, `ip_show` STRING, `model_show` STRING, `tt_bid_mean` STRING, `pday` STRING
)
PARTITIONED BY (pday)

stored as orc;;

hive和spark-sql均正常建表,且插入数据正常;

7) 总结

问题总结:在using orc建表(或其他using data source方式)下,hive和spark-sql insert overwrite table数据现象不一样。

2.问题解决

查询了很久,发现这个其实是spark-sql的语法,hive并没有:

INSERT OVERWRITE - Spark 3.0.0-preview Documentation

要想分区不被删除,需要在插入数据时指定插入的分区:

insert overwrite table t_using partition(pday='20220326') 
select * from  t0
where pday='20220326' ;

3.补充

另外spark-sql建表使用USING xxx建表的我也贴一下:

CREATE DATASOURCE TABLE - Spark 3.2.1 Documentation

spark-sql create table using orc相关推荐

  1. SQL CREATE TABLE 语句(转)

    CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表名称 ( 列名称1 数据类型, 列名称2 数据 ...

  2. mysql create很多table,SQL CREATE TABLE 语句

    原标题:SQL CREATE TABLE 语句 SQL CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. 表由行和列组成,每个表都必须有个表名. SQL CREAT ...

  3. SQL CREATE TABLE 语句/数据库建表

    转自:SQL CREATE TABLE 语句 CREATE TABLE 语句 CREATE TABLE 语句用于创建数据库中的表. SQL CREATE TABLE 语法 CREATE TABLE 表 ...

  4. SQL CREATE TABLE

    CREATE TABLE 语句用于创建数据库中的表. 表由行和列组成,每个表都必须有个表名. SQL CREATE TABLE 语法 CREATE TABLE table_name ( column_ ...

  5. 如何使用 SQL CREATE TABLE 创建新表

    文章目录 一.创建表 1.1 表创建基础 1.2 使用 NULL 值 1.3 指定默认值 二.更新表 三.删除表 四.重命名表 五.小结 本文介绍如何使用 SQL CREATE TABLE 创建新表, ...

  6. SQL—— Create table as select 与 使用select查询结果创建新表

    Create table as select,有以下三种方式: create table table1 as select * from table2 where 1=2; 创建一个表结构与table ...

  7. Exception in thread “main“ org.apache.spark.sql.AnalysisException: Table or view not found: user; li

    出现次错误的原因是创建了全局 view,改成局部 view,去掉 Global

  8. 「Spark从入门到精通系列」4.Spark SQL和DataFrames:内置数据源简介

    来源 |  Learning Spark Lightning-Fast Data Analytics,Second Edition 作者 | Damji,et al. 翻译 | 吴邪 大数据4年从业经 ...

  9. Spark SQL 核心编程

    文章目录 Spark SQL 核心编程 1.新的起点 2.SQL 语法 1) 读取 json 文件创建 DataFrame 2) 对 DataFrame 创建一个临时表 3) 通过SQL语句实现查询全 ...

最新文章

  1. 深度学习已经彻底改变了制造业的质量控制,但还不够深入
  2. 2021牛客暑期多校训练营3 G-Yu Ling(Ling YueZheng) and Colorful Tree(cdq分治)
  3. Python eval 与 exec 函数区别 - Python零基础入门教程
  4. 码云提交时报错git 报错 fatal: unable to auto-detect email address (got 'Administrator@PC-20180504MMDH.(none)'
  5. react native多语言_前端福音:为什么使用 React 和 SVG 开发图形 UI 是天作之合?
  6. 还不会用springboot写接口?快看这里,手把手操作,一发入魂~
  7. 软件行业各职位英文缩写
  8. 计算机三级信息安全笔记(知识点)
  9. CAS 服务端的搭建
  10. finereport与OA系统集成的完全方案
  11. Credential Harvester Attack Method获得用户信息
  12. 解决vmware下虚拟机关机重启ip改变
  13. 北洋大时代:大师们的理想国札记-随想篇
  14. 手机计算机怎么玩24点游戏,计算器游戏怎么玩 新手前期玩法介绍
  15. 喜欢NBA的朋友快来这里看第一阶段的全明星投票结果!!!(更新到第二阶段、第三阶段)
  16. 国产操作系统(2)中标麒麟和银河麒麟体验QT
  17. COSCon‘20 Track F 区块链论坛介绍
  18. JS--使用第三方库解决浮点数(小数)计算不准确的问题
  19. 汽车零部件高低温振动环境试验服务CNAS检测报告
  20. Python之Scrapy爬虫(热门网站数据爬取)

热门文章

  1. 为什么计算机关机慢,为什么电脑关机速度很慢_加快电脑关机速度的具体办法...
  2. 常见的量化交易策略和源码编写过程分享
  3. SPI接收数据异常问题总结
  4. 备战Noip2018模拟赛11(B组)T4 Path 好路线
  5. 如何在linux下做软raid
  6. python and 我爱自然语言处理
  7. NoSQL数据库入门 二
  8. 计算机道德 英语作文,关于道德的高中英语作文3篇
  9. 计算机显示器上有条纹,电脑显示器出现条纹的解决参考
  10. JavaScript中的循环语句-while循环