我正在使用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
字符串是否包含子字符串怎么办?因为我们将表达式写在字符串中。我该怎么做才能做到“包含”?
最佳答案
您可以使用contains
(这适用于任意序列):
df.filter($"foo".contains("bar"))
like
(类似于 SQL 简单正则表达式,_
匹配任意字符,%
匹配任意序列):
df.filter($"foo".like("bar"))
或rlike
(如Java regular expressions):
df.filter($"foo".rlike("bar"))
取决于您的要求。 LIKE
和 RLIKE
也应该与 SQL 表达式一起使用。
关于scala - 过滤字符串上的 Spark DataFrame 包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35759099/