我正在寻找一个在lambda表达式中基于计数的group by、having和then filter的实现。
select COUNT(employee_id), department_id from employee
GROUP BY department_id
HAVING COUNT(employee_id) > 1
使用lambda表达式实现这一点是否有任何简单的实现。
您可以将groupingby
收集器与counting()
和collectingandthen
组合使用:
import static java.util.stream.Collectors.collectingAndThen;
import static java.util.stream.Collectors.counting;
import static java.util.stream.Collectors.groupingBy;
...
Map<Long, Long> map =
employees.stream()
.collect(collectingAndThen(groupingBy(Employee::getDeptId, counting()),
m -> { m.values().removeIf(v -> v <= 1L); return m; }));
注意,这里不能保证groupingby
返回的映射的可变性,因此如果需要,您可以使用重载版本并提供一个具体的可变实例。
本文向大家介绍JAVA8 STREAM COLLECT GROUPBY分组实例解析,包括了JAVA8 STREAM COLLECT GROUPBY分组实例解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了JAVA8 STREAM COLLECT GROUPBY分组实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 实体类Peop
问题内容: 是否有更好的方法来计数Java8中的int出现次数 问题答案: 尝试:
问题内容: 我想计算一个分组的pandas dataframe列中字符串的出现。 假设我有以下数据框: 首先,我想GROUP BY和。对于这些组中的每一个,我都希望计算该列中的出现次数。 结果应如下所示: 通过两列进行分组很容易: 但是接下来呢? 问题答案: 调用对象的“得分”列,并使用vectorise方法,使用此方法过滤和调用: 要将其分配为列使用,以便聚合返回其索引与原始df对齐的序列:
我在Java8中有一段代码,以便使用Spark SQL API计算Annova统计信息,如下面的代码片段1所示。此代码段是基于原始SCALA代码进行的裁剪,可在https://gist.github.com/srnghn/c74835818802fefabd76f1bcd6746831/77690607caab9039b015d2232c1216500427a995 问题 问题的实质已在以下案文中
问题内容: df = pd.DataFrame({‘A’ : [‘foo’, ‘bar’, ‘foo’, ‘bar’, ‘foo’, ‘bar’, ‘foo’, ‘foo’], ‘B’ : [‘one’, ‘one’, ‘two’, ‘three’, ‘two’, ‘two’, ‘one’, ‘three’], ‘C’ : [np.nan, ‘bla2’, np.nan, ‘bla3’, np.n
问题内容: 我试图在pySpark的一行代码中进行多项操作,但不确定我的情况是否可行。 我的意图是不必将输出另存为新的数据框。 我当前的代码非常简单: 我的意图是在使用后添加,以得到与每个 列值匹配的记录计数,这些记录打印\显示为输出。 尝试使用时,出现异常。 有什么方法可以同时实现和 .show()打印,而无需将代码拆分为两行命令,例如: 或更好的办法是将合并的输出输出到-额外的一栏,用于说明与