Pyspark dataframe COMME opérateur
Quel est l'équivalent en Pyspark pour COMME opérateur?
Par exemple, je voudrais faire:
SELECT * FROM table WHERE column LIKE "*somestring*";
à la recherche de quelque chose de facile comme ça (mais ce n'est pas de travail):
df.select('column').where(col('column').like("*s*")).show()
C'est la Scala, mais pySpark sera essentiellement identique à cette réponse: stackoverflow.com/questions/35759099/...
OriginalL'auteur Babu | 2016-10-24
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
where
etcol
fonctions à faire de même.where
sera utilisé pour le filtrage des données, fondée sur une condition (ici, c'est que, si une colonne est comme'%string%'
). Lecol('col_name')
est utilisé pour représenter l'état etlike
est l'opérateur:vous pouvez l'utiliser où et col fonctions à faire de même. où sera utilisé pour le filtrage des données, fondée sur une condition (ici, c'est que, si une colonne est like '%s%'). Le col (les "nom_colonne") est utilisé pour représenter l'état et comme en est l'exploitant.
modifier la réponse. Ne pas ajouter que dans le commentaire.
OriginalL'auteur braj
À l'aide de l'étincelle à partir de la version 2.0.0 suivant fonctionne aussi très bien:
df.select('column').where("column like '%s%'").show()
'%s%'
et'%r%'
, mais je veux seulement utiliserLIKE
opérateur comme vous l'avez fait.df.select('column').where('(col("foo").like("%s%") & (col("bar").like("%s%")')
vous cherchez quelque chose de ce genre?C'est exactement ce que je cherchais.
génial!! fait oublier à upvote 😀 commentaire et/ou de répondre
Upvoted votre réponse d'hier lui-même et maintenant upvoted votre commentaire aussi 🙂
OriginalL'auteur desaiankitb
Utiliser l'opérateur like.
https://spark.apache.org/docs/latest/api/python/pyspark.sql.html#module-pyspark.sql.functions
OriginalL'auteur Rahul
Bien...il devrait y avoir sql comme regexp ->
OriginalL'auteur Babu
Dans pyspark vous pouvez toujours vous inscrire le dataframe de table et les interroger.
OriginalL'auteur sau
J'ai toujours utiliser un UDF de mettre en œuvre une telle fonctionnalité:
like(...)
. La raison pour cela est d'utiliser un pyspark UDF exige que les données converties entre la JVM et Python. En outre, le dataframe moteur ne peut pas optimiser un plan avec un pyspark de l'UDF, aussi bien qu'il peut avec ses fonctions intégrées.OriginalL'auteur Allen211
À reproduire le casse
ILIKE
, vous pouvez utiliserlower
en conjonction aveclike
.OriginalL'auteur yardsale8