aws плохая просьба (400) искра

Я пытаюсь прочитать файл orc из s3. Я могу прочитать его из искровой оболочки, как вы можете видеть ниже.

scala> val df = spark.read.format("orc").load("s3a://bucketname/testorc/people/")
df: org.apache.spark.sql.DataFrame = [name: string, age: int ... 1 more field]

и имеют искровую оболочку с нижней конфигурацией.

--master spark://ipaddress 
--packages datastax:spark-cassandra-connector:2.0.7-s_2.11,org.apache.hadoop:hadoop-aws:2.7.4,org.apache.hadoop:hadoop-client:2.7.4,com.typesafe:config:1.2.1 
--conf "spark.driver.memory=4g" 
--conf spark.hadoop.fs.s3a.endpoint=s3.ap-south-1.amazonaws.com 
--conf spark.hadoop.fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem 
--conf spark.executor.extraJavaOptions=-Dcom.amazonaws.services.s3.enableV4=true 
--conf spark.driver.extraJavaOptions=-Dcom.amazonaws.services.s3.enableV4=true 
--conf spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version=2 
--conf spark.speculation=false 
--conf "spark.executor.memory=3g" 

Но когда я пытаюсь прочитать тот же файл из s3, используя искру с гидродсферовым туманом. Я получаю следующую ошибку:

Status Code: 400, AWS Service: Amazon S3, AWS Request ID: 123456ABDGS, AWS Error Code: null, AWS Error Message: Bad Request,

И ниже моя конфигурация искры с туманом.

mist.context-defaults.spark-conf = {
      spark.master = "spark://ipaddress"
      spark.default.parallelism = 3
      spark.cores.max = 4
      spark.executor.cores = 1
      spark.driver.memory = "1g"
      spark.executor.memory = "1g"
      spark.cassandra.connection.host = "cassandrahost"
      spark.eventLog.enabled = false
      spark.sql.crossJoin.enabled = true
      spark.sql.shuffle.partitions = 50
      spark.hadoop.fs.s3a.endpoint=s3.ap-south-1.amazonaws.com
      spark.hadoop.fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem
      spark.executor.extraJavaOptions="-Dcom.amazonaws.services.s3.enableV4=true"
      spark.driver.extraJavaOptions="-Dcom.amazonaws.services.s3.enableV4=true"
      spark.hadoop.mapreduce.fileoutputcommitter.algorithm.version=2
      spark.speculation=false
    }

scala код для чтения файла:

val df = spark.read.format("orc").load("s3a://bucketname/testorc/people/")

Что мне здесь не хватает? пожалуйста помоги.

редактируемый вопрос

Передача внешней зависимости через контекстные параметры запуска.

mist.context.abc.run-options = "--packages org.apache.hadoop:hadoop-aws:2.7.4,org.apache.hadoop:hadoop-client:2.7.4,com.typesafe:config:1.2.1"

Всего 1 ответ


Вам нужно добавить те же --packages параметры --packages в свой контекст, как вы упомянули в первом примере с spark-shell .


Есть идеи?

10000