我有下表
| 貸款ID | 事件計數 | 開始日期時間 | 結束日期時間 | 頻率 | 數量 |
|---|---|---|---|---|---|
| 12 | 3 | 2020-09-01T00:00:00Z | 2020-12-01T00:00:00Z | 月刊 | 120 |
| 99 | 4 | 2021-01-01T00:00:00Z | 2021-10-01T00:00:00Z | 季刊 | 50 |
列定義
- event_count 是還款的次數。
- StartDateTime 是第一次付款的時間。
- EndDateTime 是最后一次付款的日期。
- 頻率是支付的間隔。
- 金額是每次償還的金額。
如何將其轉換為以下格式?(不使用回圈,因為 Databricks Spark SQL 不支持它們)
| 日期 | 貸款ID | 還款金額 | 還款號 |
|---|---|---|---|
| 2020-09-01 | 12 | 120 | 1 |
| 2020-10-01 | 12 | 120 | 2 |
| 2020-11-01 | 12 | 120 | 3 |
| 2021-01-01 | 99 | 50 | 1 |
| 2021-04-01 | 99 | 50 | 2 |
| 2021-07-01 | 99 | 50 | 3 |
| 2021-10-01 | 99 | 50 | 4 |
uj5u.com熱心網友回復:
根據今天,Databricks SQL 正在被解決為大多數用例的聯合查詢引擎。因此,這不用于任何轉換用例。這就是為什么 Spark SQL 僅支持基本 SQL 查詢的原因。所以for, whileSpark 不支持面向程序的查詢(Like )。這將屬于新功能請求,并可能在未來實施。你應該通過pysparkor來處理spark SQL。
uj5u.com熱心網友回復:
您應該能夠將range函式與 a 一起使用CROSS JOIN,一個簡單的示例:
%sql
SELECT *
FROM tmp t
CROSS JOIN range(1, 99) r
WHERE r.id <= t.Event_count
請注意事件計數 - 第二個引數range應該是您可以擁有的最大事件數,我剛剛在這里猜測為 99,而且交叉連接可能很慢 - 請使用您的資料進行測驗
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/416380.html
標籤:
上一篇:將相關資料Spark磁區為行組
