【问题标题】:How to filter a Spark DataFrame based on chained conditions? [duplicate]如何根据链式条件过滤 Spark DataFrame? [复制]
【发布时间】:2018-10-10 18:33:12
【问题描述】:

我正在尝试过滤类似于此的 Spark DataFrame:

+-----+---+-----+-----+-----+-----+-------+
| name|age|key_1|key_2|key_3|key_4|country|
+-----+---+-----+-----+-----+-----+-------+
|  abc| 20|    1|    1|    1|    1|    USA|
|  def| 12|    2|    2|    3|    2|  China|
|  ghi| 40|    3|    3|    3|    3|  India|
|  jkl| 39|    4|    1|    4|    4|     UK|
+-----+---+-----+-----+-----+-----+-------+

基本上我想要实现的是找出哪些行的键不匹配,在这种情况下,我想获得一个包含第二行和第四行的新数据框。

我试过了

val unmatching = df.filter(df.col("key_1").notEqual(df.col("key_2")).notEqual(df.col("key_3")).notEqual(df.col("key_4")))

我得到的是一个比原始数据集更短的数据集,但其中的键似乎是相等的。

【问题讨论】:

    标签: apache-spark apache-spark-sql


    【解决方案1】:
    1. 找出匹配项
    2. 使用 except()
      val matching=...
      val unmatching= df.except(matching);

    【讨论】:

      猜你喜欢
      • 2014-08-12
      • 1970-01-01
      • 2017-02-14
      • 2017-06-17
      • 2018-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-24
      相关资源
      最近更新 更多