Sorry, you are right. Maybe you can also share the full stack trace because I don't know where this guava library should be used.

Regards,
Timo


On 19.12.19 14:50, Alexandru Vasiu wrote:
Nope, because scalaBuildVersion is the scala version including minor version so in this case: 2.12.10 and we used it just where we need. We used scalaVersion to specify for each library what scala is used, so used flink will be flink-streaming-scala_2.12

Alex

On Thu, Dec 19, 2019 at 3:40 PM Timo Walther <twal...@apache.org <mailto:twal...@apache.org>> wrote:

    I see a mismatch between scalaBuildVersion and scalaVersion could this
    be the issue?

    Regards,
    Timo


    On 19.12.19 14:33, Alexandru Vasiu wrote:
     > This is a part of my Gradle config:
     >
     > ext {
     >      scalaVersion = '2.12'
     >      flinkVersion = '1.9.1'
     >      scalaBuildVersion = "${scalaVersion}.10"
     >      scalaMockVersion = '4.4.0'
     >      circeGenericVersion = '0.12.3'
     >      circeExtrasVersion = '0.12.2'
     >      pardiseVersion = '2.1.1'
     >      slf4jVersion = '1.7.7'
     >      log4jVersion = '1.2.17'
     >      sourceDir = 'src/main/scala'
     >      testDir = 'src/test/scala'
     > }
     > repositories {
     >      mavenCentral()
     >      //maven { url
     > "https://repository.apache.org/content/repositories/snapshots/"; }
     > }
     > configurations {
     >      scalaCompilerPlugin
     > }
     > dependencies {
     >      implementation
    "org.scala-lang:scala-library:${scalaBuildVersion}"
     >      //
    --------------------------------------------------------------
     >      // Compile-time dependencies that should NOT be part of the
     >      // shadow jar and are provided in the lib folder of Flink
     >      //
    --------------------------------------------------------------
     >      //compile "org.apache.flink:flink-java:${flinkVersion}"
     >      implementation
     >
    "org.apache.flink:flink-streaming-scala_${scalaVersion}:${flinkVersion}"
     >      implementation
     >
    "org.apache.flink:flink-connector-kafka_${scalaVersion}:${flinkVersion}"
     >      //
    --------------------------------------------------------------
     >      // Dependencies that should be part of the shadow jar, e.g.
     >      // connectors. These must be in the flinkShadowJar
    configuration!
     >      //
    --------------------------------------------------------------
     >      //flinkShadowJar
     >
    
"org.apache.flink:flink-connector-kafka-0.11_${scalaBinaryVersion}:${flinkVersion}"
     >      // https://mvnrepository.com/artifact/io.circe/
     >      implementation
     > "io.circe:circe-generic_${scalaVersion}:${circeGenericVersion}"
     >      implementation
     > "io.circe:circe-generic-extras_${scalaVersion}:${circeExtrasVersion}"
     >      implementation
     > "io.circe:circe-parser_${scalaVersion}:${circeGenericVersion}"
     >      // https://mvnrepository.com/artifact/org.scalamacros/paradise
     >      scalaCompilerPlugin
     > "org.scalamacros:paradise_${scalaBuildVersion}:${pardiseVersion}"
     >      implementation "log4j:log4j:${log4jVersion}"
     >      implementation "org.slf4j:slf4j-log4j12:${slf4jVersion}"
     >      // Add test dependencies here.
     >      //testImplementation "junit:junit:4.12"
     >      testImplementation
    "org.scalatest:scalatest_${scalaVersion}:3.1.0"
     >      // https://mvnrepository.com/artifact/org.scalamock/scalamock
     >      testImplementation
     > "org.scalamock:scalamock_${scalaVersion}:${scalaMockVersion}"
     > }
     >
     > So all are with the same scala version. I cannot share the code,
    but the
     > main app looks like:
     >
     > val env = StreamExecutionEnvironment.getExecutionEnvironment
     > val stream  = env
     >          .addSource(KAFKA_STREAM) // this will get us a stream
    with our
     > object model which is like this: case class A(a:Map[String,
     > other_case_class_obj], b: List[other_case_class_obj], c: String)
     > .flatMap(CustomFlatMap())
     > .print
     >
     > Thank you,
     > Alex
     >
     > On Thu, Dec 19, 2019 at 3:14 PM Timo Walther <twal...@apache.org
    <mailto:twal...@apache.org>
     > <mailto:twal...@apache.org <mailto:twal...@apache.org>>> wrote:
     >
     >     That's sounds like a classloading or most likely dependency
    issue.
     >
     >     Are all dependencies including Flink use the same Scala
    version? Could
     >     you maybe share reproducible some code with us?
     >
     >     Regards,
     >     Timo
     >
     >
     >     On 19.12.19 13:53, Alexandru Vasiu wrote:
     >      > I'm sorry for my last message, it might be incomplete.
     >      >
     >      > So I used case classed for my objects, but it doesn't work.
     >      >
     >      > Riching this error: "Exception in thread "main"
     >      >
>  org.apache.flink.shaded.guava18.com.google.common.util.concurrent.ExecutionError:
     >
     >      > java.lang.NoClassDefFoundError:
    scala/math/Ordering$$anon$9" when
     >     I'm
     >      > trying to apply the map/flatMap function over the stream
    (which
     >     is from
     >      > a Kafka consumer).
     >      >
     >      >
     >      > Alex
     >      >
     >      > On Thu, Dec 19, 2019 at 2:24 PM Alexandru Vasiu
     >      > <alexandru.ava...@gmail.com
    <mailto:alexandru.ava...@gmail.com>
    <mailto:alexandru.ava...@gmail.com <mailto:alexandru.ava...@gmail.com>>
     >     <mailto:alexandru.ava...@gmail.com
    <mailto:alexandru.ava...@gmail.com>
     >     <mailto:alexandru.ava...@gmail.com
    <mailto:alexandru.ava...@gmail.com>>>> wrote:
     >      >
     >      >     I used `case class` for example case class A(a:
    Map[String,
     >     String])
     >      >     so it should work
     >      >
     >      >     Alex
     >      >
     >      >     On Thu, Dec 19, 2019 at 2:18 PM Timo Walther
     >     <twal...@apache.org <mailto:twal...@apache.org>
    <mailto:twal...@apache.org <mailto:twal...@apache.org>>
     >      >     <mailto:twal...@apache.org <mailto:twal...@apache.org>
    <mailto:twal...@apache.org <mailto:twal...@apache.org>>>> wrote:
     >      >
     >      >         Hi Alex,
     >      >
     >      >         the problem is that `case class` classes are
    analyzed by
     >     Scala
     >      >         specific
     >      >         code whereas `class` classes are analyzed with
    Java specific
     >      >         code. So I
     >      >         would recommend to use a case class to make sure
    you stay
     >     in the
     >      >         "Scala
     >      >         world" otherwise the fallback is the Java-based
     >     TypeExtractor.
     >      >
     >      >         For your custom Map, you can simply ignore this error
     >     message.
     >      >         It will
     >      >         fallback to the Java-based TypeExtractor and treat
    it as a
     >      >         generic type
     >      >         because it is not a POJO.
     >      >
     >      >         I hope this helps.
     >      >
     >      >         Regards,
     >      >         Timo
     >      >
     >      >
     >      >         On 19.12.19 12:41, Alexandru Vasiu wrote:
     >      >          > Hi,
     >      >          >
     >      >          > I use flink-scala version 1.9.1 and scala
    2.12.10, and I
     >      >         defined a data
     >      >          > type which is a bit more complex: it has a list
    in it
     >     and even a
     >      >          > dictionary. When I try to use a custom map I
    got this
     >     error:
     >      >          >
     >      >          > INFO
      org.apache.flink.api.java.typeutils.TypeExtractor -
     >      >         class A  does
     >      >          > not contain a setter for field fields
     >      >          > INFO
      org.apache.flink.api.java.typeutils.TypeExtractor -
     >      >         class A cannot
     >      >          > be used as a POJO type because not all fields are
     >     valid POJO
     >      >         fields, and
     >      >          > must be processed as GenericType. Please read
    the Flink
     >      >         documentation on
     >      >          > "Data Types & Serialization" for details of the
    effect on
     >      >         performance.
     >      >          >
     >      >          > Is there a fix for this? Or a workaround?
     >      >          >
     >      >          > Thank you,
     >      >          > Alex
     >      >
     >


Reply via email to