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) = '*******';

问题解决

相关推荐
Decay__6 小时前
05_MySQL 常用 SQL 大全 —— 诊断、管理、优化辅助 SQL 与三大系统库速查
运维·数据库·sql·mysql·架构
Decay__12 小时前
04_MySQL DBA 日常运维手册 —— 会话管理、锁与阻塞、事务监控、慢查询与日志巡检
运维·数据库·sql·mysql·架构
吃一碗粉只付一碗钱18 小时前
10-令牌里的用户主键不要明文
服务器·数据库·sql·sqlserver·c#
sun032219 小时前
【JDK 动态代理】 和 【CGLIB 代理】对比
java·数据库·sql
l1t21 小时前
DeepSeek总结的AI 智能体应该用哪种语言搜索其记忆:SQL 还是 SPARQL?
数据库·人工智能·sql
geovindu21 小时前
SQL Data Sampling and Approximation Techniques using postgreSQL 18
大数据·数据库·数据仓库·sql·postgresql·数据库开发·数据库架构
l1t1 天前
DeepSeek总结的从 SQL 桥梁到智能体基础设施:Hex 的 DuckDB 实践
数据库·sql·duckdb
正儿八经的少年1 天前
MyBatis 一对一、一对多 SQL
数据库·sql·mybatis
skywalk81631 天前
hive —— 多机 AI Agent 协同的任务总线:分布式,多节点同时运行,保障不会宕机
人工智能·hive·分布式