Heim >Datenbank >MySQL-Tutorial >Wie filtere ich PySpark-DataFrames mithilfe einer IN-Klausel effizient?

Wie filtere ich PySpark-DataFrames mithilfe einer IN-Klausel effizient?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-28 21:57:11342Durchsuche

How to Efficiently Filter PySpark DataFrames Using an IN Clause?

Umgang mit der Pyspark-DataFrame-Filterung mit einer IN-Klausel

Das Filtern eines Pyspark-DataFrames mit einer SQL-ähnlichen IN-Klausel kann mit String-Formatierung erreicht werden.

Im gegebenen Beispiel:

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

An SQLContext übergebene Zeichenfolgen werden in der SQL-Umgebung ausgewertet und erfassen keine Schließungen. Um Variablen explizit zu übergeben, verwenden Sie die Zeichenfolgenformatierung:

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

Alternativ bietet der DataFrame DSL eine bessere Option für dynamische Abfragen:

from pyspark.sql.functions import col

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

Das obige ist der detaillierte Inhalt vonWie filtere ich PySpark-DataFrames mithilfe einer IN-Klausel effizient?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn