首頁 >資料庫 >mysql教程 >如何使用 IN 子句有效過濾 PySpark DataFrame?

如何使用 IN 子句有效過濾 PySpark DataFrame?

Patricia Arquette
Patricia Arquette原創
2024-12-28 21:57:11349瀏覽

How to Efficiently Filter PySpark DataFrames Using an IN Clause?

使用 IN 子句處理 Pyspark DataFrame 過濾

可以透過字串格式化來實現使用類似 SQL 的 IN 子句過濾 Pyspark DataFrame。

在給定的範例中:

sc = SparkContext()
sqlc = SQLContext(sc)
df = sqlc.sql('SELECT * from my_df WHERE field1 IN a')

傳遞給 SQLContext 的字串在以下位置進行評估SQL 環境並且不捕獲閉包。要明確傳遞變量,請使用字串格式:

df.registerTempTable("df")
sqlContext.sql("SELECT * FROM df WHERE v IN {0}".format(("foo", "bar"))).count()

或者,DataFrame DSL 為動態查詢提供更好的選項:

from pyspark.sql.functions import col

df.where(col("v").isin({"foo", "bar"})).count()

以上是如何使用 IN 子句有效過濾 PySpark DataFrame?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn