web-dev-qa-db-ja.com

pysparkのリストの値で列をフィルタリングする方法は?

値CB、CI、CRの列Xにフィルター条件を適用する必要があるデータフレームrawdataがあります。そこで、以下のコードを使用しました。

df = dfRawData.filter(col("X").between("CB","CI","CR"))

しかし、次のエラーが表示されます。

between()は正確に3つの引数(4つ指定)を取ります

この問題を解決する方法を教えてください。

6
LKA

betweenは、値が2つの値の間にあるかどうかを確認するために使用されます。入力は下限と上限です。列の値がリストにあるかどうかを確認するために使用することはできません。これを行うには、isinを使用します。

df = dfRawData.where(col("X").isin({"CB", "CI", "CR"}))