ホームページ > データベース > mysql チュートリアル > Pyspark データフレームをフィルタリングするために IN 句を正しく使用する方法は?

Pyspark データフレームをフィルタリングするために IN 句を正しく使用する方法は?

Susan Sarandon
リリース: 2024-12-27 18:31:20
オリジナル
592 人が閲覧しました

How to Correctly Use the IN Clause for Filtering Pyspark DataFrames?

SQL のような IN 句を使用した Pyspark データフレームのフィルタリング: 構文エラーへの対処

SQL を使用して Pyspark データフレームをフィルタリングしようとしたときIN 句と同様に、IN 句の値が一重引用符で囲まれていない場合、構文エラーが発生する可能性があります。この問題を解決するには、SQL クエリで値を文字列として明示的に渡します。

解決策:

値をタプルとして直接指定する代わりに、文字列の書式設定を使用します。値を SQL クエリに組み込みます。例:

df = sqlc.sql("SELECT * FROM my_df WHERE field1 IN {}".format(str((1, 2, 3))))
ログイン後にコピー

このアプローチでは、値が SQL 環境のコンテキストで評価され、SQL パーサーによって正しく処理されることが保証されます。

代替アプローチ: Spark を使用するDataFrame API

Spark は、Dataframe API を通じて IN 句を使用して DataFrame をフィルターするより便利な方法も提供します。このアプローチは、その単純さと表現力の豊かさから一般に好まれます。

from pyspark.sql.functions import col

df.where(col("field1").isin((1, 2, 3))).count()
ログイン後にコピー

ここで、 isin() 関数は引数としてタプルまたは配列を受け取り、field1 列の各値が入力リストに存在するかどうかをチェックします。 。このメソッドは簡潔であり、さまざまな強力なデータ操作操作を提供します。

以上がPyspark データフレームをフィルタリングするために IN 句を正しく使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート