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) = ‘*******’;
问题解决
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/234224.html
如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!