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

问题解决

相关推荐
测试者家园21 分钟前
慢查询日志在性能优化中的价值
sql·性能优化·性能测试·慢查询·持续测试·智能化测试
java叶新东老师5 小时前
PowerDesigner 画ER图并生成sql 教程
数据库·sql
nbsaas-boot6 小时前
SQL Server 窗口函数全指南(函数用法与场景)
开发语言·数据库·python·sql·sql server
Y.ppm6 小时前
数分思维12:SQL技巧与分析方法
数据库·sql
何传令8 小时前
SQL优化系统解析
数据库·sql·mysql
小云数据库服务专线8 小时前
GaussDB as的用法
数据库·sql·gaussdb
道一云黑板报13 小时前
Spark初探:揭秘速度优势与生态融合实践
大数据·分布式·spark·流式处理
染落林间色16 小时前
达梦数据库(DM Database)角色管理详解|了解DM预定义的各种角色,掌握角色创建、角色的分配和回收
数据库·sql·mysql
WJ.Polar16 小时前
Python与Spark
大数据·分布式·spark
喻师傅17 小时前
Spark SQL 数组函数合集:array_agg、array_contains、array_sort…详解
大数据·hadoop·分布式·sql·spark