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!