我有一个包含数字列表的列的数据集。
我想计算所有这些列表中每个数字的出现次数。所以我做一个flatMap,得到一组所有的整数。我想对它进行分组,这样我只需要每个数字一次,然后添加出现次数(在第二列或其他内容中)。 到目前为止我的代码:
val counts = dataset.flatMap(_.intLists).groupBy(i => identity(i)).count
但它总是说,“我”缺少参数类型。我想我需要告诉它它是一个Int,但我该怎么做?或者我错过了一些完全不同的东西?
答案 0 :(得分:3)
在类路径中使用Spark 2.0.2依赖项测试代码,我发现groupBy
方法需要String
或Column
。
您可能希望使用带有函数的groupByKey
方法来提取分组键(在您的示例中为identity
)。
val counts = dataset.flatMap(_.intLists).groupByKey(identity).count