Ошибка при запуске кода Scala Spark для отображения блобов в хранилище - PullRequest
1 голос
/ 30 июня 2019

Я получаю сообщение об ошибке ниже, когда пытаюсь составить список больших двоичных объектов, используя библиотеку google-cloud-storage:

Исключительная ситуация в потоке "main"

Я пытался изменить версию библиотеки google-cloud-storage в build.sbt, но снова и снова получал одну и ту же ошибку.

import com.google.auth.oauth2.GoogleCredentials
import com.google.cloud.storage._
import com.google.cloud.storage.Storage.BlobListOption

val credentials: GoogleCredentials = GoogleCredentials.getApplicationDefault()
val storage: Storage = StorageOptions.newBuilder().setCredentials(credentials).setProjectId(projectId).build().getService()

val blobs =storage.list(bucketName, BlobListOption.currentDirectory(), BlobListOption.prefix(path))

Мой build.sbt выглядит так:

version := "0.1"

scalaVersion := "2.11.8"

logBuffered in Test := false

libraryDependencies ++=
  Seq(
    "org.apache.spark" %% "spark-core" % "2.2.0" % "provided",
    "org.apache.spark" %% "spark-sql" % "2.2.0" % "provided",
    "org.scalatest" %% "scalatest" % "3.0.0" % Test,
    "com.typesafe" % "config" % "1.3.1",
    "org.scalaj" %% "scalaj-http" % "2.4.0",
    "com.google.cloud" % "google-cloud-storage" % "1.78.0"
  )

Пожалуйста, помогите мне.

1 Ответ

1 голос
/ 01 июля 2019

Это происходит потому, что Spark использует более старую версию библиотеки Guava, чем google-cloud-storage, в которой нет метода Preconditions.checkArgument.Это приводит к исключению java.lang.NoSuchMethodError.

Более подробный ответ и инструкции по устранению этой проблемы можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...