数据湖探索 DLI-Spark2.4.x与Spark3.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;
- Spark2.4.5
0 null
Spark2.4.5版本执行select * from test_part_null where p1='null'可查到分区数据。
- Spark3.3.1
0
Spark3.3.1版本执行select * from test_part_null where p1 is null才可查询到数据。
- Spark2.4.5
- 什么是跨源连接-数据湖探索DLI跨源连接
- 分布式消息服务Kafka版与分布式消息服务RocketMQ版的区别_Kafka与RocketMQ对比_Kafka与RocketMQ差异
- 什么是Spark SQL作业_数据湖探索DLISpark SQL作业
- GaussDB版本查询_华为云GaussDB的作用_高斯数据库版本查询_华为云
- GaussDB(DWS)服务_什么是IoT数仓_如何使用IoT数仓
- 什么是数据湖探索服务_数据湖探索DLI用途与特点
- GaussDB数据库的使用现状_GaussDB最大的优势_高斯数据库的使用现状
- GaussDB行转列_数据中台架构pdf_高斯数据库行转列_华为云
- GaussDB数据库案例_GaussDB数据库的优势_华为高斯数据库_新建高斯数据库
- MySQL数据库_查看MySQL数据库版本_免费MySQL数据库