可以透過字串格式化來實現使用類似 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中文網其他相關文章!