Java MapPartitionFunction返回空值

Java MapPartitionFunction返回空值,java,apache-spark,data-partitioning,Java,Apache Spark,Data Partitioning,我正在使用JavaSpark。在这里,我从hdfs读取数据集,然后在上面应用mapPartition。在调用函数的末尾,我可以看到输出行的值并没有被收集到我的df2数据集中。下面是我的代码 主要方法 Dataset<Row> df = readDataFrame(); df.show(); Dataset<Row> df2 = df.mapPartitions(new DataframeProcessMap(getConfig()), RowEncoder

我正在使用JavaSpark。在这里,我从hdfs读取数据集,然后在上面应用mapPartition。在调用函数的末尾,我可以看到输出行的值并没有被收集到我的df2数据集中。下面是我的代码

主要方法

Dataset<Row> df = readDataFrame();
        df.show();
Dataset<Row> df2 = df.mapPartitions(new DataframeProcessMap(getConfig()), RowEncoder.apply(getSchema()));
Dataset df=readDataFrame();
df.show();
Dataset df2=df.mapPartitions(新的DataframeProcessMap(getConfig()),RowEncoder.apply(getSchema());
DataframeProcessMap类

public class DataframeProcessMap implements MapPartitionsFunction<Row,Row> {
    private final Config config;

    public  DataframeProcessMap(Config config){
        this.config=config;
    }

    @Override
    public Iterator<Row> call(Iterator<Row> iterator) throws Exception{
        List<Row> outputRows = new ArrayList();
        while (iterator.hasNext()){
            Row inputRow = iterator.next();
            ArrayList output = projectAndRenameColumn(inputRow);
            Row outputRow = DataIntegrationUtils.getRow(output.toArray(), getSchema());
            System.out.println(outputRow);
            outputRows.add(outputRow);
        }
        return outputRows.iterator();
    }
    public ArrayList projectAndRenameColumn(Row inputData){
    ...
    // Some processing
    }
    public StructType getSchema(){
    ...
    //schema from config file
    }

}
公共类DataframeProcessMap实现MapPartitionsFunction{
私有最终配置;
公共DataframeProcessMap(配置){
this.config=config;
}
@凌驾
公共迭代器调用(迭代器迭代器)引发异常{
List outputRows=new ArrayList();
while(iterator.hasNext()){
行inputRow=iterator.next();
ArrayList输出=项目和名称列(inputRow);
Row outputRow=DataIntegrationUtils.getRow(output.toArray(),getSchema());
System.out.println(outputRow);
添加(outputRow);
}
返回outputRows.iterator();
}
公共阵列列表项目和名称列(行输入数据){
...
//一些加工
}
公共结构类型getSchema(){
...
//配置文件中的架构
}
}
getSchema()也存在于与此完全相同的主类中

调用内方法 System.out.println(outputRow); 给我正确的输出。然而,我在df2中得到了空行。为什么