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

问题解决

相关推荐
北方的银狐-Zero2 小时前
记录第一次部署银河麒麟环境Apache Doris单机部署
sql·database·doris
Apple_羊先森2 小时前
ORACLE数据库巡检SQL脚本--15、表空间的运行状态
数据库·sql·oracle
星沙丘秋4 小时前
Kettle9入门、使用经验与5个问题
数据库·sql·etl
山岚的运维笔记4 小时前
SQL Server笔记 -- 第16章:MERGE
java·笔记·sql·microsoft·sqlserver
sg_knight4 小时前
如何通过 SQL*Plus 连接 Oracle 数据库(使用 Instant Client)
运维·数据库·sql·oracle·database·关系型数据库·sql puls
不剪发的Tony老师5 小时前
Chartbrew:一个开源的数据可视化平台
sql·数据分析·可视化
寻道码路5 小时前
【MCP探索实践】Google GenAI Toolbox:Google开源的企业级AI数据库中间件、5分钟搞定LLM-SQL安全互联
数据库·人工智能·sql·开源·aigc
QQ828929QQ5 小时前
MySQL Explain 分析 SQL 执行计划
数据库·sql·mysql
放弃 治疗5 小时前
Windows 11 系统 Oracle PLSQL 工具(PL/SQL Developer 最新版本)完整安装与配置教程
数据库·sql
IvanCodes5 小时前
openGauss 实战手册:gsql 常用命令、认证配置与运维工具全解
大数据·数据库·sql·opengauss