数据湖探索 DLI-Spark2.4.x与Spark3.3.x版本在SQL队列的差异对比:ADD PARTITION新增支持使用类型化文字
ADD PARTITION新增支持使用类型化文字
- 说明:
- Spark2.4.x:
在Spark 2.4.x版本中,使用ADD PARTITION时,如果使用类型化文字(例如date'2020-01-01'),分区值会被解析为字符串值date'2020-01-01',会生成一个非法的日期值,因此会添加一个值为null的分区。
正确的做法是使用字符串值,例如ADD PARTITION(dt = '2020-01-01')
- Spark3.3.x:在Spark 3.3.x版本中,对分区操作支持使用类型化文字,支持使用ADD PARTITION(dt = date'2020-01-01'),并且可以正确地将分区值解析为日期类型,而不是字符串。
- Spark2.4.x:
- 升级引擎版本后是否对作业有影响:
有影响,ADD PARTITION中对于类型化文字的处理方式的变化。
- 示例代码:
准备数据:
create table test_part_type (id int,name string,pt date) PARTITIONED by (pt); insert into test_part_type partition (pt = '2021-01-01') select 1,'name1'; insert into test_part_type partition (pt = date'2021-01-01') select 1,'name1';
执行sql:
select id,name,pt from test_part_type; (配置参数spark.sql.forcePartitionPredicatesOnPartitionedTable.enabled为false)
- Spark2.4.5
1 name1 2021-01-01 1 name1
- Spark3.3.1
1 name1 2021-01-01 1 name1 2021-01-01
- Spark2.4.5
- 什么是Spark SQL作业_数据湖探索DLISpark SQL作业
- 什么是跨源连接-数据湖探索DLI跨源连接
- 什么是数据湖探索服务_数据湖探索DLI用途与特点
- 分布式消息服务Kafka版与分布式消息服务RocketMQ版的区别_Kafka与RocketMQ对比_Kafka与RocketMQ差异
- 什么是弹性资源池_数据湖探索DLI弹性资源池
- 什么是Flink OpenSource SQL_数据湖探索_Flink OpenSource SQL
- GaussDB支持的函数_GaussDB函数类型解析_高斯数据库支持的函数-华为云
- kafka是什么_kafka介绍_分布式消息服务Kafka版
- GaussDB的研发历程_GaussDB产品动态_高斯数据库研发历程-华为云
- GaussDB版本_GaussDB数据库版本_高斯数据库版本-华为云