Ошибка Scala чтения потока данных AWS Kinesis из Spark (java.lang.NoSuchMethodError)

Я использую следующий код для создания потока данных, но когда я отправляю код, я получаю NoSuchMethodError для KinesisUtils.

// AWS KINESIS
val endPoint = "https://kinesis.us-east-1.amazonaws.com"
val streamName = "PRICESIZE_REALTIME_STAGING"
val credentials = new DefaultAWSCredentialsProviderChain().getCredentials()
require(credentials != null, "No AWS credentials found")
val kinesisClient = new AmazonKinesisClient(credentials)
kinesisClient.setEndpoint(endPoint)
val numShards = kinesisClient.describeStream(streamName).getStreamDescription().getShards().size

// STREAM`
val kinesisStream = KinesisUtils.createStream(ssc, appName, streamName,
  endPoint, Region.getRegion(Regions.US_EAST_1).toString,
  InitialPositionInStream.LATEST, Duration(frequesncyMilli), StorageLevel.MEMORY_AND_DISK_2)

// Convert each line of Array[Byte] to String, and split into words
 val words = kinesisStream.flatMap(byteArray => new String(byteArray, "UTF-8").split(" "))

Я строю с помощью: mvn -Pkinesis-asl -DskipTests чистой упаковки.

Отправка создает исключение в потоке "main" java.lang.NoSuchMethodError:

    org.apache.spark.streaming.StreamingContext.withNamedScope(Ljava/lang/String;Lscala/Function0;)Ljava/lang/Object; at 
    org.apache.spark.streaming.kinesis.KinesisUtils$.createStream(KinesisUtils.scala:67)

Который включает в себя банку Kinesis ASL в полученной банке Uber

[INFO] Including org.apache.spark:spark-streaming-kinesis-asl_2.11:jar:1.6.0-SNAPSHOT in the shaded jar.
[INFO] Including com.amazonaws:amazon-kinesis-client:jar:1.3.0 in the shaded jar.
[INFO] Including com.amazonaws:aws-java-sdk-kinesis:jar:1.9.16 in the shaded jar.

0 ответов

Другие вопросы по тегам