我剛剛爲此創建了新的通過將日期與日期範圍scala進行比較來創建值火花
我有3個數據框。這只是只是測試表,通過使用synch_date添加相關sale_price,並將其與DEBUT和FIn進行比較。
以下是我所做的,剛剛接觸scala,並在此引發我所做的是誰可以幫助hpw做出這個加入請求,謝謝。
val histocaisse = spark.read.option("header", true).csv("C:\\Users\\MHT\\Desktop\\histocaisse.csv")
.withColumn("pos_id",'pos_id.cast(LongType))
.withColumn("DEBUT",'DEBUT.cast(DateType))
.withColumn("FIN",'FIN.cast(DateType))
.withColumn("PRIXV",'PRIXV.cast(DoubleType))
val test = spark.read.option("header", true).csv("C:\\Users\\MHT\\Desktop\\test.csv")
test.show
val bis = spark.read.option("header", true).csv("C:\\Users\\MHT\\Desktop\\bis.csv")
.select("pos_id","synch_date","sale_price")
+------+----------+----------+----------+
|pos_id|start_date| end_date|sale_price|
+------+----------+----------+----------+
| 1|2000-01-02|2000-01-07| 2.5|
| 2|2000-02-18|2000-02-25| 2.3|
| 3|2000-03-02|2000-03-25| 14.0|
+------+----------+----------+----------+
+------+----------+
|pos_id|synch_date|
+------+----------+
| 1|2000-01-03|
| 2|2000-02-19|
| 3|2000-03-20|
+------+----------+
+------+----------+----------+
|pos_id|synch_date|sale_price|
+------+----------+----------+
| 1|2000-01-03| 2.5|
| 2|2000-02-19| 2.3|
| 3|2000-03-20| 14|
+------+----------+----------+
的想法是連接第一和第二基於所述pos_id,並且我們將測試,其中日期的範圍是synch_date,爲了配合start_date和end_date之間適當的間隔的SALE_PRICE。 例如,對於我們看到的日期2000-01-03在範圍,然後我們採取適當的SALE_PRICE從第一數據幀 感謝您的幫助提前
請澄清你的問題有點多。你想加入第一個和第二個數據框來獲得第三個數據框嗎?如果是的話,邏輯是什麼?如果沒有,你想要的是什麼?您的sale_price與PRIXV匹配。這是巧合還是事實?那pos_id呢? .....還有更多 –
@RameshMaharjan你好,謝謝你總是救我,我編輯的問題是更好? –
如果synch_date不在start_date和end_date的範圍內,你會怎麼做?以及如果有多個與synch_date匹配的日期範圍呢? –