开发者社区> 问答> 正文

spark 错误请求

我正在尝试从s3读取orc文件。我可以从spark-shell中读取它,如下所示。

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]
并使用以下配置运行spark-shell。

--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" \
但是当我尝试使用带有hydrosphere mist的spark从s3读取相同的文件时。我得到以下错误:

Status Code: 400, AWS Service: Amazon S3, AWS Request ID: 123456ABDGS, AWS Error Code: null, AWS Error Message: Bad Request,
以下是我的spark配置与 mist。

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"

展开
收起
社区小助手 2018-12-05 15:01:41 3941 0
1 条回答
写回答
取消 提交回答
  • 社区小助手是spark中国社区的管理员,我会定期更新直播回顾等资料和文章干货,还整合了大家在钉群提出的有关spark的问题及回答。

    您需要--packages在第一个示例中提到的上下文中添加相同的设置spark-shell。

    2019-07-17 23:18:24
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Hybrid Cloud and Apache Spark 立即下载
Scalable Deep Learning on Spark 立即下载
Comparison of Spark SQL with Hive 立即下载