scala - 有没有办法使用scala过滤 Spark 数据框中不包含某些内容的字段?

标签 scala apache-spark apache-spark-sql

希望我是愚蠢的,这会很容易。

我有一个包含“url”和“referrer”列的数据框。

我想提取包含顶级域“www.mydomain.com”和“mydomain.co”的所有引用。

我可以用

val filteredDf = unfilteredDf.filter(($"referrer").contains("www.mydomain."))

但是,出于某种原因,这会提取出也包含我的网络域的网址 www.google.co.uk 搜索网址。有没有办法,在 spark 中使用 scala,我可以过滤掉任何包含 google 的内容,同时保持我拥有的正确结果?

谢谢

院长

最佳答案

您可以使用 not 否定谓词或 !所以剩下的就是添加另一个条件:

import org.apache.spark.sql.functions.not

df.where($"referrer".contains("www.mydomain.") &&
  not($"referrer".contains("google")))

或单独的过滤器:
df
 .where($"referrer".contains("www.mydomain."))
 .where(!$"referrer".contains("google"))

关于scala - 有没有办法使用scala过滤 Spark 数据框中不包含某些内容的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33608526/

相关文章:

apache-spark - Pyspark:java.lang.OutOfMemoryError:超出 GC 开销限制

Scala 函数 => 作为参数

java - 如何在 sparksql 中获取今天的 -"1 day"日期?

scala - 迭代 RDD 并更新可变集合返回一个空集合

apache-spark - 根目录 :/tmp/hive on HDFS should be writable Spark app error

apache-spark - Apache Spark 2.0 (PySpark) - DataFrame 错误为 csv 找到多个来源

java - NoSuchMethodError : scala. collection.mutable.Buffer$.empty()Lscala/collection/GenTraversable

scala - 为什么 Scala 没有 decltype?

java - 使用 CGLIB 生成和增强类

eclipse - 是否有与 Spring Source Tools Suit 兼容的 scala 插件?