0
對於模糊的標題,我想不出一個更好的方式來表達它。我對Python有點了解,並且對Pandas數據框有一些經驗,但是最近我被委託來看看涉及Spark的東西,並且我正在努力讓它領先於它。PySpark - 如果在兩個字段匹配的另一個數據框上出現值,則將值返回給數據框
我想最好的解釋方法是用一個小例子。想象一下,我有數據幀答:
id | Name |
--------------
1 | Random |
2 | Random |
3 | Random |
除了數據幀B:
id | Fruit |
-------------
1 | Pear |
2 | Pear |
2 | Apple |
2 | Banana |
3 | Pear |
3 | Banana |
現在我想要做的是(根據ID匹配)與B匹配數據幀A,並通過迭代數據框B中的Fruit列。如果出現一個值(比如Banana),我想將它作爲列添加到數據框中。可能是一個簡單的總和(每次香蕉出現時都會在列中加1),或者如果它出現一次就分類。因此,例如,輸出看起來是這樣的:
id | Name | Banana
---------------------
1 | Random | 0
2 | Random | 1
3 | Random | 1
我的問題是通過星火dataframes迭代,我怎麼能連接兩個如果匹配確實發生。我試圖做一些這樣的事情:
def fruit(input):
fruits = {"Banana" : "B"}
return fruits[input]
fruits = df.withColumn("Output", fruit("Fruit"))
但它不是真的工作。有任何想法嗎?事先道歉我的Spark經驗很少。
感謝這個,真的有幫助!快速跟進問題,你知道我怎麼能基於列的值而不是整列自己來計算pivoted字段?在上面的例子中,我有一些成果,但在真正的情況下,我有成千上萬的值,我只對幾個感興趣,做一些事情就像if語句來計算只有當列的值匹配x – rubs90
很高興它幫助!請檢查我的上述更新,以解答您的後續問題。 – Prem