Не удается получить доступ к корзине AWS из Google Datapro c с помощью spark 2.4.4 - PullRequest
1 голос
/ 21 января 2020

Я получаю доступ к некоторому файлу, хранящемуся на S3, используя следующий код:

val spark = SparkSession.builder()
      .enableHiveSupport()
      .config("fs.s3n.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem")
      .config("fs.s3n.awsAccessKeyId", <Access_key>)
      .config("fs.s3n.awsSecretAccessKey", <SecretAccessKey>)
      .getOrCreate()


val df = spark.read.orc(<s3 bucket name>)

Я получаю следующую ошибку в строке val df = spark.read.or c ()

Caused by: java.lang.ClassNotFoundException: org.jets3t.service.S3ServiceException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)

Я использую спарочный сосуд, используя следующую команду:

gcloud dataproc jobs submit spark \
    --project <project_name> \
    --region <region> \
    --cluster <cluster name> \
    --class <main class> \
    --properties spark.jars.packages='net.java.dev.jets3t:jets3t:0.9.4' \
    --jars gs://<bucket_name>/jars/sample_s3-assembly-0.1.jar,gs://<bucket_name>/jars/jets3t-0.9.4.jar

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

name := "sample_s3_ht"

version := "0.1"

scalaVersion := "2.11.12"


resolvers += Opts.resolver.sonatypeReleases
libraryDependencies += "org.apache.hadoop" % "hadoop-aws" % "2.7.1"
libraryDependencies += "org.apache.spark" %% "spark-core" % "2.4.0"
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.4.0"
libraryDependencies += "org.apache.spark" %% "spark-hive" % "2.4.0"
libraryDependencies += "com.google.cloud" % "google-cloud-bigquery" % "1.80.0"
libraryDependencies += "com.google.cloud" % "google-cloud-storage" % "1.98.0"
libraryDependencies += "com.google.cloud.spark" %% "spark-bigquery" % "0.7.0-beta"
libraryDependencies += "com.google.cloud.bigdataoss" % "gcs-connector" % "1.6.1-hadoop2"
libraryDependencies += "org.apache.hadoop" % "hadoop-client" % "2.6.0"
libraryDependencies += "net.java.dev.jets3t" % "jets3t" % "0.9.4"


assemblyMergeStrategy in assembly := {
  case PathList("META-INF", xs @ _*) => MergeStrategy.discard
  case x => MergeStrategy.first
}

Я также предоставил запись для jets3t, имел oop - aws и имел oop -клиента в sbt, как указано в других потоках, но я получаю вышеуказанную ошибку.

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