数据湖探索 DLI-Spark 2.4.x与Spark 3.3.x版本在SQL队列的差异对比:TIMESTAMP类型字段读取差异
TIMESTAMP类型字段读取差异
- 说明:
TIMESTAMP类型字段读取差异,对于Asia/Shanghai时区,时间在1900-01-01 08:05:43之前的值,Spark 2.4.5版本写入后Spark 3.3.1版本读取值与Spark 2.4.5版本读取值不同。
- Spark2.4.x:
以Asia/Shanghai时区的 1900-01-01 00:00:00 为例,通过Spark 2.4.5版本队列写入,Spark 2.4.5版本读取后得到的值为 -2209017600000。
- Spark3.3.x:
以Asia/Shanghai时区的 1900-01-01 00:00:00 为例,通过Spark 2.4.5版本队列写入,Spark 3.3.1版本配置spark.sql.parquet.int96RebaseModeInRead=LEGACY,读取后得到的值为 -2209017943000。
- Spark2.4.x:
- 升级引擎版本后是否对作业有影响:
有影响,需要评估TIMESTAMP类型字段的使用方式。
- 示例代码:
在SQL界面配置:
spark.sql.session.timeZone=Asia/Shanghai
- Spark 2.4.5
create table parquet_timestamp_test (id int, col0 string, col1 timestamp) using parquet; insert into parquet_timestamp_test values (1, "245", "1900-01-01 00:00:00");
执行SQL读取数据:
select * from parquet_timestamp_test;
查询结果:
id col0 col1 1 245 -2209017600000
- Spark 3.3.1
spark.sql.parquet.int96RebaseModeInRead=LEGACY
执行SQL读取数据:
select * from parquet_timestamp_test;
查询结果:
id col0 col1 1 245 -2209017943000
- Spark 2.4.5
- 什么是Spark SQL作业_数据湖探索DLISpark SQL作业
- 什么是数据湖探索服务_数据湖探索DLI用途与特点
- 分布式消息服务Kafka版与分布式消息服务RocketMQ版的区别_Kafka与RocketMQ对比_Kafka与RocketMQ差异
- 什么是Flink OpenSource SQL_数据湖探索_Flink OpenSource SQL
- 什么是跨源连接-数据湖探索DLI跨源连接
- Hudi服务_什么是Hudi_如何使用Hudi
- 分布式缓存Redis版本差异_分布式缓存Redis有哪些版本_分布式缓存-华为云
- 大数据可视化平台是什么_大数据可视化平台有什么优势
- 什么是弹性资源池_数据湖探索DLI弹性资源池
- 数据治理中心_数据开发_数据开发示例_使用教程-华为云