Spark 2でこのような問題を解決しようとしていますが、解決策が見つかりません。 Spark - データフレームで定義されたルールを別のデータフレームに適用する方法
私は データフレームを持っている:+----+-------+------+
|id |COUNTRY| MONTH|
+----+-------+------+
| 1 | US | 1 |
| 2 | FR | 1 |
| 4 | DE | 1 |
| 5 | DE | 2 |
| 3 | DE | 3 |
+----+-------+------+
そしてデータフレームB:
+-------+------+------+
|COLUMN |VALUE | PRIO |
+-------+------+------+
|COUNTRY| US | 5 |
|COUNTRY| FR | 15 |
|MONTH | 3 | 2 |
+-------+------+------+
アイデアをするために、データフレームAにデータフレームBの "ルール" を適用することですこの結果を得る:
データフレームA ':
+----+-------+------+------+
|id |COUNTRY| MONTH| PRIO |
+----+-------+------+------+
| 1 | US | 1 | 5 |
| 2 | FR | 1 | 15 |
| 4 | DE | 1 | 20 |
| 5 | DE | 2 | 20 |
| 3 | DE | 3 | 2 |
+----+-------+------+------+
私はそのようないろいろ書いてみました:
dfB.collect.foreach(r =>
var dfAp = dfA.where(r.getAs("COLUMN") == r.getAs("VALUE"))
dfAp.withColumn("PRIO", lit(r.getAs("PRIO")))
)
をしかし、私はそれが正しい方法ではないと確信しています。
スパークでこの問題を解決するための戦略は何ですか?