Maison >base de données >tutoriel mysql >Comment filtrer efficacement les DataFrames PySpark à l'aide d'une clause IN ?
Le filtrage d'un DataFrame Pyspark avec une clause IN de type SQL peut être réalisé avec le formatage de chaîne.
Dans l'exemple donné :
sc = SparkContext() sqlc = SQLContext(sc) df = sqlc.sql('SELECT * from my_df WHERE field1 IN a')
Les chaînes transmises à SQLContext sont évaluées dans l'environnement SQL et ne capturent pas les fermetures. Pour transmettre explicitement des variables, utilisez le formatage de chaîne :
df.registerTempTable("df") sqlContext.sql("SELECT * FROM df WHERE v IN {0}".format(("foo", "bar"))).count()
Alternativement, le DataFrame DSL offre une meilleure option pour les requêtes dynamiques :
from pyspark.sql.functions import col df.where(col("v").isin({"foo", "bar"})).count()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!