Maison > base de données > tutoriel mysql > Comment utiliser correctement la clause IN pour filtrer les DataFrames Pyspark ?

Comment utiliser correctement la clause IN pour filtrer les DataFrames Pyspark ?

Susan Sarandon
Libérer: 2024-12-27 18:31:20
original
594 Les gens l'ont consulté

How to Correctly Use the IN Clause for Filtering Pyspark DataFrames?

Filtrer un DataFrame Pyspark avec une clause IN de type SQL : résoudre l'erreur de syntaxe

Lors de la tentative de filtrage d'un DataFrame Pyspark à l'aide d'un SQL- comme pour la clause IN, vous pouvez rencontrer une erreur de syntaxe si les valeurs de la clause IN ne sont pas placées entre guillemets simples. Pour résoudre ce problème, transmettez explicitement les valeurs sous forme de chaîne dans la requête SQL.

Solution :

Au lieu de spécifier les valeurs directement sous forme de tuple, utilisez le formatage de chaîne pour incorporer les valeurs dans la requête SQL. Par exemple :

df = sqlc.sql("SELECT * FROM my_df WHERE field1 IN {}".format(str((1, 2, 3))))
Copier après la connexion

Cette approche garantit que les valeurs sont évaluées dans le contexte de l'environnement SQL et correctement gérées par l'analyseur SQL.

Approche alternative : utilisation de Spark API DataFrame

Spark fournit également un moyen plus pratique de filtrer les DataFrames à l'aide de la clause IN via son API Dataframe. Cette approche est généralement préférée pour sa simplicité et son expressivité.

from pyspark.sql.functions import col

df.where(col("field1").isin((1, 2, 3))).count()
Copier après la connexion

Ici, la fonction isin() prend un tuple ou un tableau comme argument et vérifie si chaque valeur de la colonne field1 est présente dans la liste d'entrée. . Cette méthode est à la fois concise et offre une gamme d'opérations puissantes de manipulation de données.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal