【问题标题】:merge pairs in scala to an array将scala中的对合并到数组
【发布时间】:2016-05-01 08:27:15
【问题描述】:

输入:

dupName = (ERIC,KAREN)
(ERIC,JASON)
(ERIC,ANTHONY)

预期输出:

(ERIC,KAREN,JASONC,ANTHONY)

我使用dupName.reduce(_ + _._2),它总是得到一个错误:

[error]found   : String
[error]  required: (String, String)

【问题讨论】:

    标签: arrays scala merge reachability


    【解决方案1】:

    reduce 将A 的所有值聚合为A 的单个值。或者在您的情况下,将多个(String, String) 聚合成一个(String, String)。或者在函数形式中,这是一个 reduce 函数:

    (concatenatedPair : (String, String), currentPair : (String, String) => (String, String))
    

    如果你想做你想做的事,你需要映射,像这样:

    val arr = List(("ERIC", "JASON"), ("ERIC", "ANTHONY"), ("ERIC", "KAREN"))
    val newArr = arr.flatMap(x => List(x._1, x._2)).distinct
    // newArr is now List(ERIC, JASON, ANTHONY, KAREN)
    

    这只是一个示例,因为可能有更有效的方法来执行此操作(例如:将字符串放入 Set

    【讨论】:

    • 非常感谢。我想我对 Array 和 List 感到困惑。
    • 不过我对 RDD 并不是很熟悉。
    • 这不是一个 RDD(Resilient D分布式 Dataset),RDD 来自 apache spark。这只是一个普通的旧平面地图。
    • 好的。还是谢谢你。我会看到更多的文档来了解更多关于 rdd 的信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 2019-08-15
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    相关资源
    最近更新 更多