【问题标题】:Convert JavaRDD<List<SomeClass>> to JavaRDD<SomeClass>将 JavaRDD<List<SomeClass>> 转换为 JavaRDD<SomeClass>
【发布时间】:2020-06-01 14:58:17
【问题描述】:

我有一个类对象列表的 JavaRDD。我想将它展平为类对象的 JaveRDD,这样 JavaRDD 转到 JavaRDD

在这篇文章中 Convert RDD List to RDD of individual element in spark 一种解决方案是

val newrdd = rdd.flatmap(line => line)

然而,line=>line 是 scala(我认为) 我试过了

rdd.flatmap(line-> line)

它给出了错误

“不存在类型变量U的实例,因此List符合Iterator”

【问题讨论】:

  • 请出示您的完整代码。你最初是如何让 RDD 持有一个列表的?

标签: java apache-spark rdd flatmap


【解决方案1】:

您传递给flatMapfunction 应该返回java.util.Iterator&lt;T&gt;,而不是List&lt;T&gt;。这样做就足够了:

JavaRDD<SomeClass> newRdd = rdd.flatMap(List::iterator);

【讨论】:

    猜你喜欢
    • 2016-07-24
    • 2017-02-25
    • 2019-12-23
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多