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

问题解决

相关推荐
i***279534 分钟前
Oracle分页sql
数据库·sql·oracle
i***171835 分钟前
mysql如何发现慢查询sql
数据库·sql·mysql
v***553443 分钟前
MySQL 中如何进行 SQL 调优
android·sql·mysql
3***89191 小时前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
l***74942 小时前
Mysql中使用sql语句生成雪花算法Id
sql·mysql·算法
b***67643 小时前
如何使用 SQL CREATE TABLE 创建一个表
数据库·sql·oracle
Han.miracle3 小时前
JavaEE--网络编程 http请求 :URL 方法get 和 post
数据库·sql·计算机网络
f***28144 小时前
SQL sever数据导入导出实验
数据库·sql·oracle
q***31144 小时前
【MySQL】SQL菜鸟教程(一)
sql·mysql·oracle
e***75395 小时前
MySQL错误-this is incompatible with sql_mode=only_full_group_by完美解决方案
android·sql·mysql