java - 将 JavaRDD<ArrayList<T>> 转换为 JavaRDD<T>

标签 java apache-spark

有没有直接转换JavaRDD<ArrayList<T>>的方法至JavaRDD<T>使用 Apache-Spark 的 Java API?

JavaPairRDD<NullWritable, ArrayList<Record>> baseRDD = sc.newAPIHadoopFile(args[2], InputFormat2.class, NullWritable.class,ArrayList.class, conf);  
JavaRDD<ArrayList<Record>> mapLines1 = baseRDD.values();

我想转换 JavaRDD<ArrayList<Record>>JavaRDD<Record> .

最佳答案

您可以简单地flatMap:

rdd.flatMap(new FlatMapFunction<ArrayList<Record>, Record>() {
  @Override
  public Iterable<Record> call(ArrayList<Record> records) {
    return records;
  }
});

关于java - 将 JavaRDD<ArrayList<T>> 转换为 JavaRDD<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33488397/

相关文章:

java - Proguard - Unresolved 对程序类成员的引用

java - 从插入的 DataSet 获取主键以链接到其他插入

斯卡拉 Spark : Efficient check if condition is matched anywhere?

python - 将 Spark SQL 数据帧转换为 Pandas 数据帧

java - 访问 Spring @RequestBody 中动态添加的属性

通过命令行执行时出现 Java ClassNotFound 错误

apache-spark - Spark 2.3+ 使用 parquet.enable.dictionary?

python - Spark 中的无序集或类似集?

java - 输出的第一部分(打印星星)不好

java - Java日期getTime的算法