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

问题解决

相关推荐
涤生大数据4 小时前
日均亿级数据的实时分析:Doris如何接过Spark的接力棒?
大数据·spark·doris·实时计算·大数据开发·实时分析·实时技术
北城以北88884 小时前
SSM--MyBatis框架之动态SQL
java·开发语言·数据库·sql·mybatis
晓py8 小时前
InnoDB 事务日志机制全流程详解|从 SQL 到崩溃恢复的完整旅程
数据库·sql·oracle
小湘西17 小时前
在 Hive 中NULL的理解
数据仓库·hive·hadoop
姚远Oracle ACE21 小时前
Oracle AWR案例分析:精准定位SQL执行计划切换的时间点
数据库·sql·oracle
Hello.Reader21 小时前
Spark RDD 编程从驱动程序到共享变量、Shuffle 与持久化
大数据·分布式·spark
敲代码的嘎仔1 天前
JavaWeb零基础学习Day6——JDBC
java·开发语言·sql·学习·spring·单元测试·maven
哥哥还在IT中1 天前
让数据库更智能-大模型如何优化我们的SQL查询
数据库·sql
Hello.Reader1 天前
Flink Table API & SQL 概念、常用 API 与工程落地
大数据·sql·flink
jiuweiC2 天前
hive常用命令
hive