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

问题解决

相关推荐
zgl_200537797 小时前
ZGLanguage 解析SQL数据血缘 之 Python + Echarts 显示SQL结构图
大数据·数据库·数据仓库·hadoop·sql·代码规范·源代码管理
brevity_souls11 小时前
SQL 中 BETWEEN 和 IN 的区别
数据库·sql
驾数者12 小时前
Flink SQL容错机制:Checkpoint与Savepoint实战解析
大数据·sql·flink
cyhysr15 小时前
2025sql大赛题:仅用sql处理数独
数据库·sql·oracle
SelectDB技术团队16 小时前
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
数据库·数据仓库·人工智能·sql·apache
tc&17 小时前
为什么 Kamailio 模块封装的 MySQL 函数能有效防范 SQL 注入?
数据库·sql·mysql·网络攻击模型·kamailio
心丑姑娘19 小时前
使用ClickHouse时的劣质SQL样例
数据库·sql·clickhouse
lkbhua莱克瓦2420 小时前
进阶-存储对象2-存储过程上
java·开发语言·数据库·sql·mysql
lkbhua莱克瓦2420 小时前
进阶-存储对象1-视图
java·数据库·sql·mysql·视图
Light601 天前
智链护航,数档永存:基于领码SPARK平台构建下一代AI+区块链档案系统解决方案
人工智能·spark·区块链