Spark 1.3. および Spark Avro 1.0. を使用しています。 リポジトリページの例 から作業しています。次のコードはうまく機能します
val df = sqlContext.read.avro("src/test/resources/episodes.avro")
df.filter("doctor > 5").write.avro("/tmp/output")
しかし、doctor
文字列に部分文字列が含まれているかどうかを確認する必要がある場合はどうでしょうか。文字列内に式を書いているので。 「含む」を行うにはどうすればよいですか?
contains
を使用できます(これは任意のシーケンスで機能します)。
df.filter($"foo".contains("bar"))
like
(任意の文字に一致する_
および任意のシーケンスに一致する%
を含むSQLの単純な正規表現を使用したSQL):
df.filter($"foo".like("bar"))
またはrlike
( Java正規表現 と同様):
df.filter($"foo".rlike("bar"))
要件に応じて。 LIKE
およびRLIKE
は、SQL式でも機能するはずです。
Pyspark、SparkSql構文では:
where column_n like 'xyz%'
動作しない可能性があります。
つかいます:
where column_n RLIKE '^xyz'
これは完璧に機能します。