scala - 过滤字符串上的 Spark DataFrame 包含

标签 scala apache-spark dataframe apache-spark-sql

我正在使用Spark 1.3.0Spark 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"))

取决于您的要求。 LIKERLIKE 也应该与 SQL 表达式一起使用。

关于scala - 过滤字符串上的 Spark DataFrame 包含,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35759099/

相关文章:

Scala - 在映射函数中与 lambda 混淆

sql - 如何创建 UDF 来查找数组列中的索引

scala - Apache Spark : Why I can't use broadcast var defined in a global object

r - 如何检查R环境中是否存在数据框?

python - 从 Pandas 数据框中的字符串列中删除零

scala - 使用 Scala 2.12.0 时激活器 dist 失败

scala - 使用 SbtOneJar 时用 sbt 重命名 jar 文件

hadoop - Spark over Yarn - 不正确的 Application Master 选择

apache-spark - Spark 推测的新任务是否有限制?

python - 确定 Pandas Dataframe 中的列是否包含 DATE 或 DATETIME 信息的最简单方法