我正在尝试用Spark计算一些参数。我使用了单词计数示例。 在这个例子中,我们可以计算一个单词,但我想知道如何同时计算两个字段。
这是我想要做的:
输入文件
{
"redundancy":1,
"deviceID":"dv1"
}
{
"redundancy":1,
"deviceID":"dv2"
}
{
"redundancy":2,
"deviceID":"dv1"
}
{
"redundancy":1,
"deviceID":"dv1"
}
{
"redundancy":2,
"deviceID":"dv5"
}
输出文件
{
"redundancy":1,
"count":3,
"nbDevice":2
}
{
"redundancy":2,
"count":2,
"nbDevice":2
}
我想知道是否已经有这个用例的例子,或者如果你有任何文档或链接,我会非常感激。
答案 0 :(得分:1)
您可以使用对作为键。
解决方案可能如下所示:
rdd.map(record => (record.firstField, record.secondField) -> 1)
.reduceByKey(_ + _)