Dea*_*an 8 scala apache-spark apache-spark-sql
希望我是愚蠢的,这很容易.
我有一个包含"url"和"referrer"列的数据框.
我想提取包含顶级域名"www.mydomain.com"和"mydomain.co"的所有引荐来源.
我可以用
val filteredDf = unfilteredDf.filter(($"referrer").contains("www.mydomain."))
Run Code Online (Sandbox Code Playgroud)
但是,由于某种原因,这会删除包含我的网域的网址www.google.co.uk搜索网址.有没有办法,在火花中使用scala,我可以用谷歌过滤掉任何东西,同时保持我的正确结果?
谢谢
院长
zer*_*323 20
您可以使用否定谓语not或!使所有剩下的就是添加其他条件:
import org.apache.spark.sql.functions.not
df.where($"referrer".contains("www.mydomain.") &&
not($"referrer".contains("google")))
Run Code Online (Sandbox Code Playgroud)
或单独的过滤器:
df
.where($"referrer".contains("www.mydomain."))
.where(!$"referrer".contains("google"))
Run Code Online (Sandbox Code Playgroud)