曖昧なタイトルをお詫び申し上げます。私はPythonのビットを理解し、パンダのデータフレームでいくつかの経験を持っていますが、最近私はSparkに関係するものを見るように任されており、私はそれを前に進めるために苦労しています。PySpark - 2つのフィールドが一致する別のデータフレームで値が返された場合、データフレームに値を返す
これを説明する最善の方法は、小さな例があると思います。
id | Name |
--------------
1 | Random |
2 | Random |
3 | Random |
と同様にデータフレームB:私はデータフレームのAを持っている想像し
id | Fruit |
-------------
1 | Pear |
2 | Pear |
2 | Apple |
2 | Banana |
3 | Pear |
3 | Banana |
今、私がやろうとしているがBとマッチデータフレームA(IDマッチングに基づく)で、かつ反復処理データフレームBのFruitカラム。値が上がった場合(Banana)、データフレームにカラムとして追加します。単純な合計(毎回バナナが来るたびに1が列に追加されます)か、それが一度起きればクラスになります。したがって、たとえば、出力は次のようになります。
id | Name | Banana
---------------------
1 | Random | 0
2 | Random | 1
3 | Random | 1
私の問題は、Sparkデータフレームを反復処理し、どのようにマッチが発生した場合、私は2を接続することができています。私はこの効果のために何かをしようとしていた:
def fruit(input):
fruits = {"Banana" : "B"}
return fruits[input]
fruits = df.withColumn("Output", fruit("Fruit"))
それは実際には機能していない。何か案は?あらかじめお詫び申し上げます。私のスパーク体験はごくわずかです。
おかげで、本当に便利!クイックフォローアップの質問では、カラム全体の値ではなく、カラムの値に基づいてピボットフィールドをどのように数えることができるか知っていますか?上記の例では、いくつかの成果が得られましたが、実際のコンテキストでは何千もの値があり、興味があるのはif文のようなものです – rubs90
助けてくれてうれしい! Plsはあなたのフォローアップの質問への答えのための私の上記の更新をチェックします。 – Prem