我需要加入這些資料幀:
df0:
-------------
|id |quantity|
-------------
| a| 4|
| b| 7|
| c| 6|
| d| 1|
-------------
df1:
------------------------
|id |order_id|order_date|
------------------------
| a| x|2021-01-25|
| a| y|2021-01-23|
| b| z|2021-01-28|
| b| x|2021-01-20|
| c| y|2021-01-15|
| d| x|2021-01-18|
------------------------
我想得到的結果如下:
----------------------------------
|id |quantity |order_id|order_date|
----------------------------------
| a| 4 | x|2021-01-25|
| b| 7 | z|2021-01-28|
| c| 6 | y|2021-01-15|
| d| 1 | x|2021-01-18|
----------------------------------
也就是說,我只需要加入基于order_date.
uj5u.com熱心網友回復:
只要組df1上id和骨料最大order_date再加入與結果df0:
import pyspark.sql.functions as F
result = df0.join(
df1.groupBy("id").agg(F.max("order_date").alias("order_date")),
on=["id"]
)
result.show()
# --- -------- ----------
#| id|quantity|order_date|
# --- -------- ----------
#| d| 1|2021-01-18|
#| c| 6|2021-01-15|
#| b| 7|2021-01-28|
#| a| 4|2021-01-25|
# --- -------- ----------
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/364712.html
標籤:蟒蛇-3.x 阿帕奇火花 火花 apache-spark-sql
上一篇:使用輸入將數字轉換為羅馬字符
