我在用火花1.3.0 http://spark.apache.org/releases/spark-release-1-3-0.html and 火花阿夫罗1.0.0 https://github.com/databricks/spark-avro/tree/c5612df9b1a9768689fec91655faa2a7073fd9fc#spark-sql-avro-library。
我的工作地点是存储库页面上的示例 https://github.com/databricks/spark-avro。下面的代码运行良好
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"))
or rlike
(就像Java正则表达式 https://docs.oracle.com/javase/tutorial/essential/regex/):
df.filter($"foo".rlike("bar"))
根据您的要求。LIKE
and RLIKE
也应该与 SQL 表达式一起使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)