【问题标题】:Java - How to filter rows in dataframe that have null values for specific columnsJava - 如何过滤数据框中具有特定列空值的行
【发布时间】:2022-11-19 15:33:14
【问题描述】:

在 Java 中,我有一个 df 看起来像这样:

NAME COLUMN_1 COLUMN_2
name_1 null some_value
name_2 some_value null
name_3 null null

我想过滤所有具有 COLUMN_1 和 COLUMN_2 空值的行,以便新数据集看起来像:

NAME COLUMN_1 COLUMN_2
name_1 null some_value
name_2 some_value null

如何保留在 COLUMN_1 和 COLUMN_2 中至少有一个值的行

我尝试了以下过滤器,但 and 语句似乎是顺序的,并从 df 中删除了所有行:

Column filter = col("COLUMN_1").isNotNull().and(col( "COLUMN_2").isNotNull());
df.filter(filter).show();

如何保留在 COLUMN_1 和 COLUMN_2 中至少有一个值的行

【问题讨论】:

    标签: java apache-spark apache-spark-sql apache-spark-dataset


    【解决方案1】:

    使用您的过滤器,您要求两个都COLUMN_1COLUMN_1 必须不为空才能包含在结果中。

    你真正想要的是最后一个COLUMN_1COLUMN_1 不为空,这可以通过 or 实现:

    Column filter = col("COLUMN_1").isNotNull().or(col("COLUMN_2").isNotNull());
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-28
      • 2022-11-01
      • 2018-04-03
      • 1970-01-01
      • 2019-01-23
      • 1970-01-01
      • 2019-02-10
      相关资源
      最近更新 更多