我有这种格式的数据:
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)
比如:
val test = data.mapValues { x =>
for {
element <- x.filter(_ > 2);
yelement <- x.filter(_ != element)
} yield (element, yelement)
}
您可能还想查看:Scala中的嵌套迭代,它回答了为什么会得到一个空结果。
我能够解决这个问题,因为:
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。 多谢了。