草庐IT

2步窗的聚合,带有Kafka流DSL

假设我有一个由每秒1个数据点组成的流“流-1”,我想计算一个派生的流“stream-5”,该流使用5秒的跳窗口和另一个流式的“stream-10”包含总和它基于“stream-5”,其中包含10秒的跳窗口。需要分别为每个密钥完成聚合,我希望能够在不同的过程中运行每个步骤。如果Stream-5和Stream-10包含相同键/时间戳的更新,则本身并不是问题(因此我不一定需要如何发送最终的kafka-streams聚合结果,该结果是窗口窗口的ktable?)只要最后值正确。是否有一种(简单)使用高级Kafka流DSL解决此问题的方法?到目前为止,由于汇总,我还没有看到一种优雅的方式来处理Stream

java - 如何使用流合并 map 集合

我有一组map:Collection>myCol=table.values();我想把它转换成mapMap这样,对于匹配的键,值被汇总。使用for循环,这很简单:MapoutMap=newHashMap();for(Mapmap:myCol){outMap=mergeMaps(outMap,map);}和mergeMaps()定义为mergeMaps(Mapm1,Mapm2){MapoutMap=newTreeMap(m1);m2.forEach((k,v)->outMap.merge(k,v,Double::sum));/*sumvaluesifkeyexists*/returnou

java - 为什么 "java -version"将其输出打印到错误流?

让我们尝试重定向java的标准错误:java-version2>~/error.txterror.txt填充了版本。让我们尝试重定向标准输出:java-version>~/output.txtoutput.txt为空。为什么java二进制打印正常输出到错误流? 最佳答案 根据theJavadocumentation:-showversionDisplaysversioninformationandcontinuesexecutionoftheapplication.Thisoptionisequivalenttothe -versi

java - 当套接字关闭时,是否有必要关闭从套接字的 IO 流创建的输入/输出流?

privatevalin=newBufferedReader(newInputStreamReader(con.getInputStream()))privatevalout=newPrintWriter(con.getOutputStream(),true)try{while(true){if(in.readLine()==null)thrownewIOException("connectionresetbypeer")}}catch{casee:Exception=>}finally{//Isthisnecessary?in.close()out.close()//Closesoc

java - 处理流中的一个元素而不关闭它

这个问题在这里已经有了答案:GettingthenextitemfromaJava8stream(3个答案)关闭7年前。我正在寻找一种干净高效的方式来将消费者应用于非并行流的一个元素而不关闭流。我的意思是我要替换AtomicBooleanfirstOneDone=newAtomicBoolean();lines.forEach(line->{if(!firstOneDone.get()){//handlefirstlinefirstOneDone.set(true);}else{//handleanyotherline}})有相似的东西lines.forFirst(header->{/

java - 即使抛出异常,如何迭代流?

stream.map(obj->doMap(obj)).collect(Collectors.toList());privateStringdoMap(Objectobj){if(objectIsInvalid){thrownewParseException("Objectcouldnotbeparsed");}}问题:我如何抛出异常并让流迭代知道它不应该中断整个迭代,而是继续下一个元素(并最终记录失败的对象)? 最佳答案 这里有一个奇怪的技巧可以用来改进异常处理。假设您的映射器函数是这样的:StringdoMap(Objectob

java - 了解从 HashSet 生成的流中元素的顺序

我读了这个Java8官方文档:Streamsmayormaynothaveadefinedencounterorder.Whetherornotastreamhasanencounterorderdependsonthesourceandtheintermediateoperations.Certainstreamsources(suchasListorarrays)areintrinsicallyordered,whereasothers(suchasHashSet)arenot.Ifastreamisordered,repeatedexecutionofidenticalstrea

java - 向 Java 流添加回调函数

假设我要执行以下操作:列出给定目录中的文件(作为流)将每个文件(路径)映射到一个Reader(例如BufferedReader)以供消费者使用。一旦文件被使用,删除文件代码看起来有点像这样:Streamstream=Files.list(Paths.get("myFolder"))//ReturnsastreamofPath.callback(Files::delete)//Thiswouldhavetobecalledafterthereaderhasbeenconsumed.map(Files::newBufferedReader);//MapseverypathintoaRead

Java流合并或减少重复对象

我需要通过将所有重复的条目合并到一个对象中,从一个可以有重复项的列表中生成一个唯一的好友列表示例-从不同的社交提要中获取friend并放入1个大列表1.friend-[姓名:“JohnnyDepp”,出生日期:“1970-11-10”,来源:“FB”,fbAttribute:“..”]2.friend-[姓名:“ChristianBale”,出生日期:“1970-01-01”,来源:“LI”,liAttribute:“..”]3.friend-[姓名:“JohnnyDepp”,出生日期:“1970-11-10”,来源:“Twitter”,twitterAttribute:“..”]4.

java - Java Optional 可以用来做流控吗?

我找不到使用Java的Optional执行以下操作的方法:if(SOME_OBJECT!=null){doSomething(SOME_OBJECT);}else{doSomethingElse();}通过使用Optional,我并不是说用Optional.ofNullable(SOME_OBJECT).isPresent()替换SOME_OBJECT==null,这比简单地检查是否为null的语法要长得多。我期望的是这样的:Optional.ofNullable(SOME_OBJECT).ifPresent(this::doSomething).orElse(this::doSome