数据湖探索 DLI-Spark 2.4.x与Spark 3.3.x版本在SQL队列的差异对比:空值分区的查询语句不同
空值分区的查询语句不同
- 说明:
- Spark2.4.x:
Spark 3.0.1或更早版本中,如果分区列是字符串类型,则将其解析为其文本表示形式的字符串文本,例如字符串“null”。
通过part_col='null'查询空值分区的数据。
- Spark3.3.x:
`PARTITION(col=null)`始终在分区规范中解析为null,即使分区列是字符串类型。
通过part_col is null查询空值分区的数据。
- Spark2.4.x:
- 升级引擎版本后是否对作业有影响:
有影响,涉及对空值分区的查询需要适配
- 示例代码:
准备数据:
CREATE TABLE test_part_null (col1 INT, p1 STRING) USING PARQUET PARTITIONED BY (p1);INSERT INTO TABLE test_part_null PARTITION (p1 = null) SELECT 0;
执行sql:
select * from test_part_null;
- Spark 2.4.5
0 null
Spark 2.4.5版本执行select * from test_part_null where p1='null'可查到分区数据。
- Spark 3.3.1
0
Spark 3.3.1版本执行select * from test_part_null where p1 is null才可查询到数据。
- Spark 2.4.5
- 什么是Spark SQL作业_数据湖探索DLISpark SQL作业
- 什么是跨源连接-数据湖探索DLI跨源连接
- 什么是数据湖探索服务_数据湖探索DLI用途与特点
- 什么是Flink OpenSource SQL_数据湖探索_Flink OpenSource SQL
- 分布式消息服务Kafka版与分布式消息服务RocketMQ版的区别_Kafka与RocketMQ对比_Kafka与RocketMQ差异
- 数据治理中心_数据开发_数据开发示例_使用教程-华为云
- GaussDB版本查询_华为云GaussDB的作用_高斯数据库版本查询_华为云
- GaussDB(DWS)服务_什么是IoT数仓_如何使用IoT数仓
- Hudi服务_什么是Hudi_如何使用Hudi
- GaussDB数据库的使用现状_GaussDB最大的优势_高斯数据库的使用现状