根据列列表过滤数据集

时间:2019-12-12 12:41:20

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

我正在尝试根据为空的列列表过滤数据集。 然后,我想收集整个列表,并从原始数据集中过滤掉所有这些记录。

因此,测试场景可能如下:我的数据集中有10行,我正在检查mandatoryTagsList中10个项目中的任何一项是否为null。 如果找到一些结果,则需要保留以下信息:

  1. 缺少mandatoryTags的行
  2. 特定行缺少所有mandatoryTags

不是,我正在遍历必须进行null检查的列列表,如下所示:

List<Dataset<Row>> failedRows = new ArrayList<>();
for(String tagName: mandatoryTagsList){
  Dataset<Row> filteredDs = itemsDS.filter(functions.col(tagName).isNull());
  if(filteredDs.count()>0) {
    failedRows.add(filteredDs);
  }
}

然后我将使用此failedRows从原始数据集中进行过滤。

有更好的方法吗?

0 个答案:

没有答案