当前位置: 首页 > 知识库问答 >
问题:

Spark RDD转换问题

慕璞
2023-03-14

我有这种格式的数据:

100 1 2 3 4 5

我使用以下代码来加载它:

 val data : RDD[(String, Array[Int])] = sc.textFile("data.txt").map(line => ((line.split("\t"))(0), (line.split("\t"))(1).split(" ").map(_.toInt)))

我想从数组[Int]生成对,这样一个值大于一个数(在下面的代码中为2)的数组元素就可以与数组的所有其他元素配对。然后我会用它来生成更多的统计数据。例如,对于示例数据,我应该能够首先生成:

100 (3,1), (3,2), (3,4), (3,5),(4,1), (4,2), (4,3), (4,5)

val test = merged_data.mapValues { case x =>
      for (element <- x) {
        val y = x.filter(_ != element)

        if (element > 2)
          {

            for (yelement <- y)
              {
                (element, yelement)
              }
          }
      }
      }

下面是我得到的o/p:Array[(String,Unit)]=Array((100,())不确定为什么它是空的。

一旦我能够解决这个问题,我将对元组中的元素进行排序,并删除重复的(如果有的话)

100 (3,1), (3,2), (3,4), (3,5),(4,1), (4,2), (4,3), (4,5)

变成这样:

100 (1,3), (2,3), (3,4), (3,5), (1,4), (2,4), (4,5)

共有2个答案

厍浩广
2023-03-14

比如:

val test = data.mapValues { x =>
    for {
        element <- x.filter(_ > 2);
        yelement <- x.filter(_ != element)
    } yield (element, yelement)
}

您可能还想查看:Scala中的嵌套迭代,它回答了为什么会得到一个空结果。

郝玄天
2023-03-14

我能够解决这个问题,因为:

  val test = merged_data.mapValues { case x =>
  var sb = new StringBuilder

  for (element <- x) {
    val y = x.filter(_ != element)

    if (element > 2)
      {

        for (yelement <- y)
          {
            (element, yelement)
          }
      }
  }
  sb.toString()
  }
 类似资料:
  • 问题内容: 这是我的问题:鉴于这些课程 此代码编译: 并且这不: 是什么赋予了? 更新: 此代码可在Java 8中编译。显然是由于“改进的类型推断”。 问题答案: 在第一个示例中,调用的推断类型为,显然可以将其分配给相同类型的变量。 在第二个示例中,右侧的类型为。虽然 是 分配给, 不 分配给。它可以分配给。 其原因与a 不可分配给的原因相同。如果是这样,它将使以下(非类型安全的)代码成为可能:

  • 问题内容: 我有一个要转换为SSIS程序包中PRN的Excel文件。我的问题。我的一列中有货币,所有内容都应带有小数点,但并非所有数字都具有小数点。例如,如果没有毛钱,它只会读为10425。我需要在SSIS中进行的操作是使读为10425.00,就像文件中的其他数字一样。 请帮忙。 问题答案: 您可以使用“派生列”转换来转换数据类型。我认为Currency(DT_CY)数据类型不会强制您使用小数位,

  • 上面的代码是,我从容器里面实例化的一个类,AdminService,invoke返回的是一个mixed任意类型,这样我就出现了一个问题了。 如果我不写@var 标注,我的编辑器就无法识别这个$adminService 实例下的方法了。 请问如何将$adminService 转换成AdminServcie 类型!

  • 我有下面的形式的数组 我想根据id和name对其进行分组,得到下面形式的数组,代码要如何编写?

  • 有人能帮助我为什么过渡没有得到应用吗? HTML 萨斯 我在这里有一个工作代码:https://codepen.io/loganlee/pen/rwnjpdz?editors=1100 我希望.box__faces-front和.box__faces-back的rotateY转换都要转换,并且我将转换放在父元素上,在本例中是.box__faces。 多谢了。