循环中的 Union spark 数据集

Union spark Datasets in loop

我正在尝试将数据集附加到循环中的空数据集。 但是生成的数据集总是空的。

我试图通过仅执行代码中注释的第 1 行来从循环中消除变量 failedRows,但仍然得到空的 failedRows 数据集。

Dataset<Row> failedRows = sparkSession.createDataFrame(new ArrayList<>(), itemsDS.schema());
failedRows.count();
Dataset<Row> filteredDs;
for(String tagName: mandatoryTagsList){
    //failedRows.union(itemsDS.filter(functions.col(tagName).isNull()));//Line 1
    filteredDs = itemsDS.filter(functions.col(tagName).isNull());
    if(filteredDs.count()>0){
        failedRows.union(filteredDs);//Line 2
        failedRows.count();
    }
}

有谁知道联合没有产生预期结果的确切原因。

每次都需要保存到一个新的变量中。

Dataset Spark 中的所有分布式集合都是不可变的。

failedRows = failedRows.union(filteredDs);//Line 2