Filtre spark DataFrame sur la chaîne contient
j'utilise étincelle 1.3.0 et Spark Avro 1.0.0. Je travaille à partir de l'exemple sur la page de référentiel. Ce code suivant fonctionne bien
val df = sqlContext.read.avro("src/test/resources/episodes.avro")
df.filter("doctor > 5").write.avro("/tmp/output")
Mais si j'avais besoin de voir si le doctor
chaîne de caractères contient une sous-chaîne? Puisque nous écrivons notre expression à l'intérieur d'une chaîne. Que dois-je faire pour faire un "contient"?
20
demandé sur
merv
2016-03-03 01:06:24
1 réponses
Vous pouvez utiliser contains
(cela fonctionne avec une suite arbitraire):
df.filter($"foo".contains("bar"))
like
SQL (comme avec SQL expression régulière simple avec _
correspondant à un caractère arbitraire et %
correspondant à une suite arbitraire):
df.filter($"foo".like("bar"))
ou rlike
(Java expressions régulières):
df.filter($"foo".rlike("bar"))
selon vos besoins. LIKE
et RLIKE
devrait aussi fonctionner avec les expressions SQL.
39
répondu
zero323
2016-07-29 11:54:23