以下脚本可用于"计数"键
val nbr = List(1,2,2,3,3,3,4,4,4,4)
val nbrPairsRDD = sc.parallelize(nbr).map(nbr => (nbr, 1))
val nbrCountsWithReduce = nbrPairsRDD
.reduceByKey(_ + _)
.collect()
nbrCountsWithReduce.foreach(println)
它返回:
(1,1)
(2,2)
(3,3)
(4,4)
如果我们有两个范围1:2和3:4,如何修改为按范围而不是绝对值进行映射,并给出以下输出:
(1:2,3)
(3:4,7)
答案 0 :(得分:1)
一个选项是将列表转换为double并使用直方图函数:
div#radio input[type="radio"] + label {
border: 1px solid black;
}
div#radio input[type="radio"]:checked + label {
border: 1px solid red;
}
答案 1 :(得分:0)
我能想到的一个简单方法是将键映射到各个范围,例如:
val nbrRangePairs = sc.parallelize(nbr)
.map(nbr => (computeRange(nbr), 1))
.reduceByKey(_ + _)
.collect()
// function to compute Ranges
def computeRange(num : int) : String =
{
if(num < 3)
return "1:2"
else if(num < 5)
return "2:3"
else
return "invalid"
}
答案 2 :(得分:0)
以下是按范围计算聚合的代码段:
Set myXLApp = GetObject(, "Excel.Application")
'specify the History File
With myXLApp
.Workbooks("SR Historyv2.xlsx").Activate
End With