Hey thanks for the help everyone, I’m gonna use the new scala 2.0 libraries. Im getting the craziest errorwhen building this though but I’m not a maven expert. I have to use maven right now (not sbt) because I don’t own this project at work. Anyway whenever I add the maven dependency - <dependency> <groupId>org.apache.org</groupId> <artifactId>kafka-streams-scala_2.11</artifactId> <version>2.0.0</version> </dependency>
I then get all kinds of errors in this code that already runs. Like if I leave the old Scala wrapper Lifht code in there and just bring in this new dependency into the Pom file, I can’t even do some import statements. Like when I do “import scala.collection.JavaConverters._” then I get the following error - “object ‘language’ is not a member of package org.apache.kafka.streams.scala”. So what can I be checking to make sure that won’t do this? Thanks! Sent from my iPhone > On Sep 10, 2018, at 9:48 PM, Liam Clarke <liam.cla...@adscale.co.nz> wrote: > > Hi Michael Eugene, > > You're correct - you only need to upgrade your Kafka Streams dependencies > in your build file. Looking at MVN Repository, the streams lib will > implicitly bring in its dependency on kafka-clients, but you can always > include your own explicit dependency on it. > https://mvnrepository.com/artifact/org.apache.kafka/kafka-streams/2.0.0 > > Kind regards, > > Liam Clarke > >> On Tue, Sep 11, 2018 at 1:43 PM, Michael Eugene <far...@hotmail.com> wrote: >> >> Well to bring up that kafka to 2.0, do I just need for sbt kafka clients >> and kafka streams 2.0 for sbt? And it doesn't matter if the system is not >> Kafka 2.0? Upgrading Kafka itself is probably not an option or me right now. >> >> >> >> >> >> ________________________________ >> From: John Roesler <j...@confluent.io> >> Sent: Monday, September 10, 2018 4:18:24 PM >> To: users@kafka.apache.org >> Subject: Re: SAM Scala aggregate >> >> In addition to the other suggestions, if you're having too much trouble >> with the interface, you can always fall back to creating anonymous >> Initializer/Aggregator instances the way you would if programming in Java. >> This way, you wouldn't need SAM conversion at all (all it's doing is >> turning your functions into an Initializer and Aggregator). >> >> On Mon, Sep 10, 2018 at 8:32 AM Sean Glover <sean.glo...@lightbend.com> >> wrote: >> >>> Hi, >>> >>> SAM conversions can be enabled in 2.11 with the -Xexperimental to scalac. >>> However, this version of SAM conversions isn't recommended for production >>> and was significantly refactored for 2.12. When we contributed this API >> to >>> Kafka we explicitly removed the SAM conversions because we didn't want to >>> require the Kafka build (or end user builds) to enable this experimental >>> feature. >>> >>> Echoing what Debasish has already said, the lightbend/kafka-streams-scala >>> project is deprecated. If the app your building is destined for >> production >>> you should use the Kafka 2.0+ client libraries which are backwards >>> compatible with older versions of the brokers; you don't need to get >>> everyone else to upgrade their clients or your cluster. >>> >>> Regards >>> Sean >>> >>> On Sun, Sep 9, 2018 at 3:59 PM Michael Eugene <far...@hotmail.com> >> wrote: >>> >>>> I’m integrating with lot of other applications and it would be a little >>>> cowboy to chose my own version. I can commend that we all went to 2.0 >>> but >>>> there are already working application me so it won’t be possible to >>> upgrade >>>> everything that everyone else is doing. That will have to happen >>> sometime >>>> though. It’s just not gonna happen this week and my goal is to get >>>> something working by tomorrow and I’ll stay up all night if I have to. >>>> >>>> Sent from my iPhone >>>> >>>>> On Sep 9, 2018, at 2:11 PM, Matthias J. Sax <matth...@confluent.io> >>>> wrote: >>>>> >>>>> Why can't you use Kafka Streams 2.0? >>>>> >>>>> Note: Kafka Streams is backward compatible and it can connect to >> older >>>>> brokers -- it's not required to upgrade your cluster to use Kafka >>>>> Streams 2.0 -- updating you maven/gradle dependency is sufficient. >>>>> >>>>> Also, AFAIK SAM conversions are only available in Scala 2.12. >>>>> >>>>> >>>>> -Matthias >>>>> >>>>>> On 9/9/18 11:37 AM, Michael Eugene wrote: >>>>>> I can’t do Kafka 2.0. I am limited to this version right now. If I >>>> continue to struggle with it this much, I can eventually do that. >>> However, >>>> I know other people in the organization have things kafka working with >>>> Scala. Probably not a good idea to say it’s a necessity when it’s not >>>> completely necessary. Your point is well taken though, I am considering >>> it. >>>>>> >>>>>> Sent from my iPhone >>>>>> >>>>>>> On Sep 9, 2018, at 1:10 PM, Debasish Ghosh < >> ghosh.debas...@gmail.com >>>> >>>> wrote: >>>>>>> >>>>>>> I don't have the environment to run the Scala code right now. Will >> be >>>>>>> tomorrow until I have one .. >>>>>>> >>>>>>> Now that Scala API is part of the official Kafka distribution. Can >> u >>>> please >>>>>>> try that out instead of kafka-streams-scala ? The library is now >>>> deprecated >>>>>>> and I remember we ran into some SAM related issues with Scala 2.11 >>>> (which >>>>>>> worked fine with 2.12). They were finally fixed in the Kafka >>>> distribution - >>>>>>> there are some differences in the APIs as well .. >>>>>>> >>>>>>> regards. >>>>>>> >>>>>>>> On Sun, Sep 9, 2018 at 11:32 PM Michael Eugene < >> far...@hotmail.com> >>>> wrote: >>>>>>>> >>>>>>>> I’m using 2.11.11 >>>>>>>> >>>>>>>> Sent from my iPhone >>>>>>>> >>>>>>>>> On Sep 9, 2018, at 12:13 PM, Debasish Ghosh < >>>> ghosh.debas...@gmail.com> >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> Which version of Scala are u using ? >>>>>>>>> >>>>>>>>>> On Sun, 9 Sep 2018 at 10:44 AM, Michael Eugene < >>> far...@hotmail.com> >>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> I am using kafak-sreams-scala >>>>>>>>>> https://github.com/lightbend/kafka-streams-scala, and I am >> trying >>>> to >>>>>>>>>> implement something very simple and I am getting a compilation >>>> error by >>>>>>>> the >>>>>>>>>> "aggregate" method. The error is "Cannot resolve overload method >>>>>>>>>> 'aggregate'" and "Unspecified value parameters: materialized: >>>>>>>>>> Materialized[String, NotInferedVR, KeyValueStore[Bytes, >>>> Array[Byte]]]" >>>>>>>>>> [https://avatars0.githubusercontent.com/u/16247783?s=400&v=4]< >>>>>>>>>> https://github.com/lightbend/kafka-streams-scala> >>>>>>>>>> >>>>>>>>>> GitHub >>>>>>>>>> - lightbend/kafka-streams-scala: Thin Scala wrapper ...< >>>>>>>>>> https://github.com/lightbend/kafka-streams-scala> >>>>>>>>>> github.com >>>>>>>>>> Note: >>>>>>>>>> Scala API for Kafka Streams have been accepted for inclusion in >>>> Apache >>>>>>>>>> Kafka. We have been working with the Kafka team since the last >>>> couple of >>>>>>>>>> months working towards meeting the standards and guidelines for >>> this >>>>>>>>>> activity. Lightbend and Alexis Seigneurin have >>>>>>>>>> contributed this library (with ... >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> However when I add a third argument for a Materialized, I get >> the >>>>>>>>>> compilation error "Too may arguments for method aggregate(() >> =>VR, >>>>>>>> (K,V,VR) >>>>>>>>>> => VR)" >>>>>>>>>> >>>>>>>>>> It doesn't make sense anymore what could be breaking this. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> val myStream = builder >>>>>>>>>> .stream(inputTopic) >>>>>>>>>> .map{ (key: String, value: Array[Byte]) => >>>>>>>>>> println(s"key = ${key}") >>>>>>>>>> val newKey = GroupByAction.getGroupByKeyFromByteAray(value) >>>>>>>>>> >>>>>>>>>> val newValue = GroupByAction.getGroupByValueFromByteAray( >> value) >>>>>>>>>> >>>>>>>>>> println(s"newKey = ${newKey}") >>>>>>>>>> (newKey, serialise(newValue))} >>>>>>>>>> >>>>>>>>>> .groupByKey >>>>>>>>>> .aggregate(()=> 0L, (k,v,vr) => vr + 1) >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>> Sent from my iPhone >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Debasish Ghosh >>>>>>> http://manning.com/ghosh2 >>>>>>> http://manning.com/ghosh >>>>>>> >>>>>>> Twttr: @debasishg >>>>>>> Blog: http://debasishg.blogspot.com >>>>>>> Code: http://github.com/debasishg >>>>> >>>> >>> >>> >>> -- >>> Senior Software Engineer, Lightbend, Inc. >>> >>> <http://lightbend.com> >>> >>> @seg1o <https://twitter.com/seg1o>, in/seanaglover >>> <https://www.linkedin.com/in/seanaglover/> >>> >>