我正在尝试根据为空的列列表过滤数据集。 然后,我想收集整个列表,并从原始数据集中过滤掉所有这些记录。
因此,测试场景可能如下:我的数据集中有10行,我正在检查mandatoryTagsList
中10个项目中的任何一项是否为null
。
如果找到一些结果,则需要保留以下信息:
mandatoryTags
的行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
从原始数据集中进行过滤。
有更好的方法吗?