spark 执行 hive sql数据丢失

spark-sql 丢失数据

1.通过spark执行hive sql 的时候,发现 hive 四条数据,spark 执行结果只有两条数据

目标对应的两条数据丢失

select date, user_id, pay from dim.isr_pay_failed where user_id = '*******'

hive-sql 结果:

| date | user_id | pay |

| 20250425| d34342343* | 7 |

| 20250425| d34342344* | 7 |

| 202504525| d34342345* | 7 |

| 202504524| d34342346* | 7 |

spark-sql 结果

| 202504525| d34342345* | 7 |

| 202504524| d34342346* | 7 |

原因

表结构很总 user_id 为 CHAR 类型:

CHAR 类型数据在spark 和 hive 中存在如下差异:

Hive 类型 Spark SQL 类型 关键差异与注意事项

CHAR 不足补空格。建议通过 TRIM() 或改用 VARCHAR 避免填充问题。

TIMESTAMP TimestampType 时区敏感:Hive 默认使用服务器时区,Spark 需通过 spark.sql.session.timeZone

统一配置。

解决方式

select date, user_id, pay from dim.isr_pay_failed where triim(user_id) = '*******';

问题解决

相关推荐
麦聪聊数据3 分钟前
数据 API 平台选型:深度解读数据服务的四大关键技术与架构底座
数据库·sql
拾起零碎5 小时前
U8/材料出库单触发器,有条件的修改出库类别
sql
敲代码的嘎仔5 小时前
力扣高频SQL基础50题详解
开发语言·数据库·笔记·sql·算法·leetcode·后端开发
TE-茶叶蛋6 小时前
sql优化思维
数据库·sql
打小就很皮...7 小时前
基于 Python + LangChain + SQL 生成自动查询数据实战
数据库·sql·langchain
这个DBA有点耶8 小时前
某银行核心系统从Oracle迁移到国产数据库全程复盘(DBA视角)
数据库·经验分享·sql·oracle·dba·智能硬件
静小谢10 小时前
sql笔记
spring boot·笔记·sql·mybatis
sleepcattt11 小时前
Spring-全面详解(学习总结)
数据库·sql·spring·spring事务·spring详解
木子墨51612 小时前
工程算法实战 | 数据库ORDER BY的底层:内存排序 → 外部归并 → 索引优化
数据结构·数据库·python·sql·算法·动态规划
顾随12 小时前
(2)达梦数据库--SQl基础实践
前端·数据库·sql