我正在使用Spark 1.3.0和Spark Avro 1.0.0。 我在the example on the repository page工作。以下代码效果很好
val df = sqlContext.read.avro("src/test/resources/episodes.avro")
df.filter("doctor > 5").write.avro("/tmp/output")
但是如果我需要查看doctor
字符串是否包含子字符串呢?因为我们在字符串中编写表达式。我怎么做“包含”?
答案 0 :(得分:52)
您可以使用contains
(这适用于任意序列):
df.filter($"foo".contains("bar"))
like
(SQL类似于SQL简单正则表达式,_
匹配任意字符,%
匹配任意序列):
df.filter($"foo".like("bar"))
或rlike
(与Java regular expressions一样):
df.filter($"foo".rlike("bar"))
取决于您的要求。 LIKE
和RLIKE
也应该与SQL表达式一起使用。
答案 1 :(得分:0)
在pyspark,SparkSql语法中:
manylinux1
可能不起作用。
使用:
where column_n like 'xyz%'
这很好用。