有兩個DataFrames(Scala中,阿帕奇星火1.6.1)如何在Scala和Apache Spark中連接兩個DataFrame?
1)匹配
MatchID | Player1 | Player2
--------------------------------
1 | John Wayne | John Doe
2 | Ive Fish | San Simon
2)個人資料
Player | BirthYear
--------------------------------
John Wayne | 1986
Ive Fish | 1990
San Simon | 1974
john Doe | 1995
怎麼會用 'BirthYear' 一個新的數據幀對於雙方球員來說
MatchID | Player1 | Player2 | BYear_P1 |BYear_P2 | Diff
-------------------------------------------------------------
1 | John Wayne | John Doe | 1986 | 1995 | 9
2 | Ive Fish | San Simon | 1990 | 1974 | 16
?
我試圖
val df = MatchesDF.join(PersonalDF, MatchesDF("Player1") === PersonalDF("Player"))
然後第二個玩家
val resDf = df.join(PersonalDF, df("Player2") === PersonalDF("Player"))
再次加入,但它是非常耗時的操作。
可能是Scala和Apache Spark中的另一種方法嗎?
再次做兩聯接,它是如何做的更好? – void
這對匹配表運行約2分鐘,約10000行, 玩家表約700記錄 – gmlvsv
使用數據框爲您的連接,而不是普通的SQL更好的性能。 – dheee