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) = ‘*******’;
問題解決
本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處:https://dhexx.cn/hk/5535240.html
如若內容造成侵權/違法違規/事實不符,請聯系我的編程經驗分享網進行投訴反饋,一經查實,立即刪除!