【问题标题】:Transforming Array[((Int, Int), Int)] to Array[(Int, Int, Int)] in Scala在 Scala 中将 Array[((Int, Int), Int)] 转换为 Array[(Int, Int, Int)]
【发布时间】:2016-06-10 14:36:22
【问题描述】:

我有这种类型的数据结构:

Array(((10359,60),80), ((10442,54),80), ((10440,61),90), ((10324,63),80), ((10286,35),100), ...

我想得到

Array((10359,60,80), (10442,54,80), (10440,61,90), (10324,63,80), (10286,35,100), ...

val maxData = mappedData.reduceByKey((x,y) => math.max(x, y))

减少后,我需要找到正确的打印格式,并且可以 找不到正确的方法。

val modifiedData = maxData.map(line => (? , ? ,?))?

【问题讨论】:

标签: arrays scala apache-spark


【解决方案1】:
val modifiedData = maxData.map(line => (line._1._1,line._1._2,line._2))

【讨论】:

    【解决方案2】:

    您正在寻找扁平化。

     scala> val lol = List(List(1,2), List(3,4))
     lol: List[List[Int]] = List(List(1, 2), List(3, 4))
    

    对这个列表调用 flatten 方法会创建一个新列表:

     scala> val result = lol.flatten
     result: List[Int] = List(1, 2, 3, 4)
    

    https://www.safaribooksonline.com/library/view/scala-cookbook/9781449340292/ch10s16.html

    【讨论】:

    • flatten 不正确。 OP 有元组,而不是列表。
    猜你喜欢
    • 2019-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-18
    • 1970-01-01
    相关资源
    最近更新 更多