var period = 3;
int [] inArr = {2, 4, 6, 7, 9, 11, 13, 16, 17, 18, 20, 22 };
var upbond = inArr[0] + period;
var count =0;
List<Integer> result = new ArrayList();
for(int a: inArr){
if(a <= upbond){
count++;
}else{
result.add(count);
count = 1;
upbond += period;
}
}
result.add(count);
System.out.println(Arrays.toString(result.toArray()));
scan()
变体允许您使用单独类型的累加器。
我将使用一个单独的state
类来解决这个问题:
public class State {
private int count;
private Optional<Integer> upbond;
private Optional<Integer> result;
public State() {
this.count = 0;
this.upbond = Optional.empty();
this.result = Optional.empty();
}
public State(int count, int upbond) {
this.count = count;
this.upbond = Optional.of(upbond);
this.result = Optional.empty();
}
public State(int count, int upbond, int result) {
this.count = count;
this.upbond = Optional.of(upbond);
this.result = Optional.of(result);
}
public int getCount() {
return count;
}
public Optional<Integer> getUpbond() {
return upbond;
}
public Optional<Integer> getResult() {
return result;
}
}
...然后使用scan()
逐个元素构建状态:
sourceFlux
.concatWithValues(0)
.scan(new State(), (state, a) ->
a <= state.getUpbond().orElse(a + period) ?
new State(state.getCount() + 1, state.getUpbond().orElse(a + period)) :
new State(1, state.getUpbond().orElse(a + period) + period, state.getCount())
)
.windowUntil(s -> s.getResult().isPresent())
.flatMap(f -> f.reduce((s1, s2) -> s1.getResult().isPresent()?s1:s2).map(s -> s.getResult().orElse(s.getCount() - 1)))
基本统计 基本统计包含昨日消耗流量、昨日卡均流量、近7日卡均流量、本月已用总流量。 流量池统计 以可视化的图形形态,清晰直观的展示当前流量池的使用情况。多个流量池会依次显示。 流量最值情况 显示昨日流量使用最多、流量使用最少的情况。可以初步判定昨日用量是否有卡异常使用。并且可以针对异常的卡查看详情,详细排查问题,观测最近几天是否均出现异常情况。 流量使用情况 查询当前所有卡的流量消耗曲线、每日卡均
我有一个现有的过程,我正试图转换成SCDF实现。目前的流程是, HTTP接收器(接收HTTP POST数据)->RabbitMQ->MQ接收器服务->处理/转换->DB接收器
我想用Scala计算Flink中流数据的分位数。我的问题类似于但比这一个更简单,flink计算中位数。我认为这可以通过定义一个自定义聚合函数来实现,但我正在寻找一些Scala示例。我已经看了本章中的例子https://github.com/dataArtisans/flink-training-exercises但是没有完全找到我要找的东西。我计算了总和,平均值,我想计算第95个百分位数。 我希望
1.通过该接口可以获取某视频某天的小时维度的流量信息。地址为: http://spark.bokecc.com/api/traffic/video/hourly 需要传递以下参数: 参数 说明 userid 用户 id,不可为空 videoid 视频 id,不可为空 date 查询日期,格式为yyyy-MM-dd,不可为空 返回数据traffics包含如下字段: 字段名 说明 traffic 流量
1.通过该接口可以获取某用户某天的小时维度的流量信息。地址为: http://spark.bokecc.com/api/traffic/user/hourly 需要传递以下参数: 参数 说明 userid 用户id,不可为空 date 查询日期,格式为yyyy-MM-dd,不可为空 返回数据traffics包含如下字段: 字段名 说明 traffic 流量信息 traffic包含如下字段: 字段名
当前里程碑(M4)文档显示了如何使用检索的示例: 我们如何使用WebClient将流式数据(从返回