Spark 和 AWS S3 连接错误:无法通过 Spark-shell 从 S3 位置读取文件

2024-04-12

在下面的 Spark-shell 中,我尝试连接到 S3 并加载文件以创建数据帧:

spark-shell --packages com.databricks:spark-csv_2.10:1.5.0
scala> val sqlContext = new org.apache.spark.sql.SQLContext(sc)
scala> sc.hadoopConfiguration.set("fs.s3a.access.key", "")
scala> sc.hadoopConfiguration.set("fs.s3a.secret.key", "")
scala> val weekly = 
sqlContext.read.format("com.databricks.spark.csv").option("header", "true").option("delimiter", ",").load("s3://usr_bucket/data/file.csv")
scala> print(weekly)
scala> weekly.show()

错误消息:

java.lang.VerifyError: Bad type on operand stack
Exception Details:
  Location:
    org/apache/hadoop/fs/s3/Jets3tFileSystemStore.initialize(Ljava/net/URI;Lorg/apache/hadoop/conf/Configuration;)V @43: invokespecial
  Reason:
    Type 'org/jets3t/service/security/AWSCredentials' (current frame, stack[3]) is not assignable to 'org/jets3t/service/security/ProviderCredentials'
  Current Frame:
    bci: @43
    flags: { }
    locals: { 'org/apache/hadoop/fs/s3/Jets3tFileSystemStore', 'java/net/URI', 'org/apache/hadoop/conf/Configuration', 'org/apache/hadoop/fs/s3/S3Credentials', 'org/jets3t/service/security/AWSCredentials' }
    stack: { 'org/apache/hadoop/fs/s3/Jets3tFileSystemStore', uninitialized 37, uninitialized 37, 'org/jets3t/service/security/AWSCredentials' }
  Bytecode:
    0000000: 2a2c b500 02bb 0003 59b7 0004 4e2d 2b2c
    0000010: b600 05bb 0006 592d b600 072d b600 08b7
    0000020: 0009 3a04 2abb 000a 5919 04b7 000b b500
    0000030: 0ca7 0023 3a04 1904 b600 0ec1 000f 9900
    0000040: 0c19 04b6 000e c000 0fbf bb00 1059 1904
    0000050: b700 11bf 2abb 0012 592b b600 13b7 0014
    0000060: b500 152a 2c12 1611 1000 b600 17b5 0018
    0000070: b1
  Exception Handler Table:
    bci [19, 49] => handler: 52
  Stackmap Table:
    full_frame(@52,{Object[#194],Object[#195],Object[#196],Object[#197]},{Object[#198]})
    append_frame(@74,Object[#198])
    chop_frame(@84,1)

        at org.apache.hadoop.fs.s3.S3FileSystem.createDefaultStore(S3FileSystem.java:119)
        at org.apache.hadoop.fs.s3.S3FileSystem.initialize(S3FileSystem.java:109)
        at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2816)
        at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:98)
        at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2853)
        at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2835)
        at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:387)
        at org.apache.hadoop.fs.Path.getFileSystem(Path.java:296)
        at org.apache.hadoop.mapred.FileInputFormat.singleThreadedListStatus(FileInputFormat.java:258)
        at org.apache.hadoop.mapred.FileInputFormat.listStatus(FileInputFormat.java:229)
        at org.apache.hadoop.mapred.FileInputFormat.getSplits(FileInputFormat.java:315)
        at org.apache.spark.rdd.HadoopRDD.getPartitions(HadoopRDD.scala:202)
        at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)
        at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)
        at scala.Option.getOrElse(Option.scala:120)
        at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)
        at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35)
        at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)
        at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)
        at scala.Option.getOrElse(Option.scala:120)
        at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)
        at org.apache.spark.rdd.MapPartitionsRDD.getPartitions(MapPartitionsRDD.scala:35)
        at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:239)
        at org.apache.spark.rdd.RDD$$anonfun$partitions$2.apply(RDD.scala:237)
        at scala.Option.getOrElse(Option.scala:120)
        at org.apache.spark.rdd.RDD.partitions(RDD.scala:237)
        at org.apache.spark.rdd.RDD$$anonfun$take$1.apply(RDD.scala:1307)
        at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150)
        at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:111)
        at org.apache.spark.rdd.RDD.withScope(RDD.scala:316)
        at org.apache.spark.rdd.RDD.take(RDD.scala:1302)
        at org.apache.spark.rdd.RDD$$anonfun$first$1.apply(RDD.scala:1342)
        at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:150)
        at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:111)
        at org.apache.spark.rdd.RDD.withScope(RDD.scala:316)
        at org.apache.spark.rdd.RDD.first(RDD.scala:1341)
        at com.databricks.spark.csv.CsvRelation.firstLine$lzycompute(CsvRelation.scala:269)
        at com.databricks.spark.csv.CsvRelation.firstLine(CsvRelation.scala:265)
        at com.databricks.spark.csv.CsvRelation.inferSchema(CsvRelation.scala:242)
        at com.databricks.spark.csv.CsvRelation.<init>(CsvRelation.scala:74)
        at com.databricks.spark.csv.DefaultSource.createRelation(DefaultSource.scala:171)
        at com.databricks.spark.csv.DefaultSource.createRelation(DefaultSource.scala:44)
        at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:158)
        at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:119)
        at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:109)
        at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:35)
        at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:40)
        at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:42)
        at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:44)
        at $iwC$$iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:46)
        at $iwC$$iwC$$iwC$$iwC$$iwC.<init>(<console>:48)
        at $iwC$$iwC$$iwC$$iwC.<init>(<console>:50)
        at $iwC$$iwC$$iwC.<init>(<console>:52)
        at $iwC$$iwC.<init>(<console>:54)
        at $iwC.<init>(<console>:56)
        at <init>(<console>:58)
        at .<init>(<console>:62)
        at .<clinit>(<console>)
        at .<init>(<console>:7)
        at .<clinit>(<console>)
        at $print(<console>)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.spark.repl.SparkIMain$ReadEvalPrint.call(SparkIMain.scala:1045)
        at org.apache.spark.repl.SparkIMain$Request.loadAndRun(SparkIMain.scala:1326)
        at org.apache.spark.repl.SparkIMain.loadAndRunReq$1(SparkIMain.scala:821)
        at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:852)
        at org.apache.spark.repl.SparkIMain.interpret(SparkIMain.scala:800)
        at org.apache.spark.repl.SparkILoop.reallyInterpret$1(SparkILoop.scala:857)
        at org.apache.spark.repl.SparkILoop.interpretStartingWith(SparkILoop.scala:902)
        at org.apache.spark.repl.SparkILoop.command(SparkILoop.scala:814)
        at org.apache.spark.repl.SparkILoop.processLine$1(SparkILoop.scala:657)
        at org.apache.spark.repl.SparkILoop.innerLoop$1(SparkILoop.scala:665)
        at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$loop(SparkILoop.scala:670)
        at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply$mcZ$sp(SparkILoop.scala:997)
        at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945)
        at org.apache.spark.repl.SparkILoop$$anonfun$org$apache$spark$repl$SparkILoop$$process$1.apply(SparkILoop.scala:945)
        at scala.tools.nsc.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:135)
        at org.apache.spark.repl.SparkILoop.org$apache$spark$repl$SparkILoop$$process(SparkILoop.scala:945)
        at org.apache.spark.repl.SparkILoop.process(SparkILoop.scala:1064)
        at org.apache.spark.repl.Main$.main(Main.scala:35)
        at org.apache.spark.repl.Main.main(Main.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:730)
        at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
        at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
        at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
        at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

你应该使用s3a文件系统

load("s3a://usr_bucket/data/file.csv")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark 和 AWS S3 连接错误:无法通过 Spark-shell 从 S3 位置读取文件 的相关文章

  • 在 VPC 内从 Lambda 访问 AWS S3

    总的来说 我对在 VPC 中使用 AWS Lambda 感到非常困惑 问题是 Lambda 在尝试访问 S3 存储桶时超时 解决方案似乎是 VPC 端点 我已将 Lambda 函数添 加到 VPC 以便它可以访问 RDS 托管数据库 下面的
  • Spark Scala 相当于 SKEW 连接提示

    Spark SQL 有一个可用的倾斜提示 请参阅here https docs databricks com spark latest spark sql skew join html relation columns and skew v
  • 使用空/空字段值创建新的数据框

    我正在从现有数据帧创建一个新数据帧 但需要在这个新 DF 中添加新列 下面代码中的 field1 我该怎么做 工作示例代码示例将不胜感激 val edwDf omniDataFrame withColumn field1 callUDF v
  • 使用 Carrierwave 在 Heroku 上上传大文件

    我即将开始一个业余爱好项目 我将在其中将大量文件上传到 S3 有些文件会大到 50 100MB 我想使用 Heroku 但如果需要的话可以回退到 EC2 Heroku Carrierwave S3 可以解决这个问题吗 或者文件上传有限制吗
  • 图片URL命名方案

    序言 我正在构建一种 CMS 社交网络服务 它将托管许多图像 我打算使用 Eucalyptus Amazon S3 来存储图像 并且想知道 Tumblr Twitter 等网站使用的看似随机的文件名的重要性 例如 31 media tumb
  • AWS cloudfront添加自定义标头而不使用Lambda@Edge

    我想补充一下x 框架选项 as 同源 to AWS 云锋为我的应用程序提供服务的服务S3 bucket 我不想添加新的Lambda编辑请求头的函数 实际上我在附件下找到了一个地方 CloudFront 分配 gt 我的分配设置 gt 来源和
  • AWS RDS:从S3存储桶中的sql文件导入数据

    我有一个数据库备份作为 sql 文件存储在 s3 存储桶中 如何将该文件直接导入到 Aurora RDS 中 而不需要将其下载到我的 PC 上并手动导入 如果您的数据是有效的 SQL 转储 您可以在创建新的 Aurora 实例时指定其 S3
  • 放大发布导致 AccessDenied 错误

    我部署了一个简单的网络应用程序S3 via amplify publish 主办方有Cloudfront启用 我在设置托管时选择了放大中的 PROD 环境 并且我正在工作eu central 1地区 但每当我尝试访问Cloudfront网址
  • 如何抑制 EMR 上运行的 Spark-sql 的 INFO 消息?

    我正在 EMR 上运行 Spark 如中所述在 Amazon Elastic MapReduce 上运行 Spark 和 Spark SQL https aws amazon com articles 4926593393724923 本教
  • 在使用 Phoenix 4.5 的 CDH 5.4 上运行 Spark 作业时未找到 PhoenixOutputFormat

    我通过重新编译源代码设法在 Cloudera CDH 5 4 上配置 Phoenix 4 5 sqlline py效果很好 但火花有问题 spark submit class my JobRunner master yarn deploy
  • 选择 PySpark 数据框中的列

    我正在寻找一种在 PySpark 中选择数据帧列的方法 对于第一行 我知道我可以使用df first 但不确定列是否存在没有列名 我有 5 列 想循环浏览每一列 1 2 3 4 5 6 7 1 0 0 0 0 0 0 1 0 0 0 0 0
  • Spark sql 每组前 n 个

    我怎样才能获得每组的前n名 比如说前10名或前3名 spark sql http www xaprb com blog 2006 12 07 how to select the firstleastmax row per group in
  • Spark中分布式读取CSV文件

    我正在开发一个 Spark 处理框架 它读取大型 CSV 文件 将它们加载到 RDD 中 执行一些转换 最后保存一些统计数据 相关 CSV 文件平均大小约为 50GB 我正在使用 Spark 2 0 我的问题是 当我使用sparkConte
  • 我需要比较两个数据帧以进行类型验证并发送非零值作为输出

    我正在比较两个数据帧 基本上 这些是两个不同数据源的模式 一个来自 hive 另一个来自 SAS9 2 我需要验证两个数据源的结构 因此我将模式转换为两个数据帧 它们是 SAS 架构将采用以下格式 scala gt metadata sho
  • Zeppelin:如何在 zeppelin 中重新启动 SparkContext

    我正在使用 zeppelins Spark 解释器的隔离模式 在这种模式下 它将为 Spark 集群中的每个笔记本启动一项新工作 我想在笔记本执行完成后通过 zeppelin 终止该作业 为此我做了sc stop这停止了 sparkCont
  • Java Spark DataFrameReader java.lang.NegativeArraySizeException

    学习 Spark for java 并尝试阅读 csv文件为DataFrame使用DataFrameReader 甚至不能得到一个超级简单的 csv文件工作 因为我不断收到异常java lang NegativeArraySizeExcep
  • 是否有“S3范围读取功能”允许从AWS-S3文件读取分配的字节范围?

    尝试在 AWS Lamba 中处理大文件并跳过整个文件似乎有点浪费 是否有 范围读取 功能 允许仅从 S3 文件读取预定义的字节范围 是的 这是可能的 根据 S3 文档获取对象 http docs aws amazon com Amazon
  • 使用 boto3 从 s3 下载时使用 filename 作为文件名

    我正在使用 boto3 上传文件 如下所示 client boto3 client s3 aws access key id id aws secret access key key client upload file tmp test
  • 使用 Scala 在 Apache Spark 中拆分字符串

    我有一个数据集 其中包含以下格式的行 制表符分隔 Title lt t gt Text 现在对于每个单词Text 我想创建一个 Word Title 一对 例如 ABC Hello World gives me Hello ABC Worl
  • aws-s3 gem 和 right_aws gem 之间的 Rails Paperclip 冲突。怎么解决?

    对于新应用程序 我想使用回形针将文件存储到 S3 我已经为另一个应用程序安装了 aws s3 gem 这似乎会导致一些问题 因为 Paperclip 应该使用 right aws 但正在尝试使用 aws s3 gem 但我不想从我的系统中删

随机推荐