0
を維持しながら、列データを選択し、私は500の以上の列と同じスキーマを持つ2つのSQLデータフレームがあります。私はそのようなそのデータフレームを返すたい2つ(PY)スパークのSQLデータフレームを比較し、条件付き結合列
df_A
+----+---+---+...
| id | A | B |...
+----+---+---+...
| w1 | 0 | 1 |...
+----+-- +---+...
| w2 | 1 | 1 |...
+----+-- +---+...
| w3 | 0 | 1 |...
+----+-- +---+...
df_B
+----+---+---+...
| id | A | B |...
+----+---+---+...
| w1 | 0 | 1 |...
+----+-- +---+...
| w2 | 0 | 1 |...
+----+-- +---+...
| w3 | 0 | 1 |...
+----+-- +---+...
をdf_A。 1ならば1、そうでなければdf_Bの値。
以下のコードは列の比較を正しく返すことができますが、id列を追加することはできません。助言がありますか?
results = df_A.alias("a").join(df_B.alias("b"), "id").selectExpr(["case when b.`{0}` = 1 then 1 else a.`{0}` end as `{0}`".format(yy) for yy in df_b.columns[1:]])