火花:一起数两个字段



我试图用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
}

我想知道是否已经有一个用例的示例,或者您是否有任何文档或链接,我会非常感谢。

您可以将Pairs用作密钥。

解决方案看起来像:

rdd.map(record => (record.firstField, record.secondField) -> 1)
   .reduceByKey(_ + _)

最新更新