无法从仅使用s3a的s3协议的S3存储桶中读取

配音

我已经遍历了将aWS EMR上运行的spark连接到s3存储桶的依赖项上的所有线程,但是我的问题似乎稍有不同。在我看到的所有其他讨论中,s3和s3a协议具有相同的依赖性。不知道为什么一个为我工作而另一个却没有。当前,在本地模式下运行spark,s3a可以很好地完成工作,但是我的理解是s3是在EMR上运行的受支持(由于它依赖于HDFS块存储)。对于S3协议,我缺少什么?

spark.read.format("csv").load("s3a://mybucket/testfile.csv").show()
//this works, displays the df

spark.read.format("csv").load("s3://mybucket/testfile.csv").show()
/*
java.io.IOException: No FileSystem for scheme: s3
  at org.apache.hadoop.fs.FileSystem.getFileSystemClass(FileSystem.java:2660)
  at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:2667)
  at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:94)
  at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:2703)
  at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:2685)
  at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:373)
  at org.apache.hadoop.fs.Path.getFileSystem(Path.java:295)
  at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary$1.apply(DataSource.scala:547)
  at org.apache.spark.sql.execution.datasources.DataSource$$anonfun$org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary$1.apply(DataSource.scala:545)
  at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
  at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241)
  at scala.collection.immutable.List.foreach(List.scala:392)
  at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241)
  at scala.collection.immutable.List.flatMap(List.scala:355)
  at org.apache.spark.sql.execution.datasources.DataSource.org$apache$spark$sql$execution$datasources$DataSource$$checkAndGlobPathIfNecessary(DataSource.scala:545)
  at org.apache.spark.sql.execution.datasources.DataSource.resolveRelation(DataSource.scala:359)
  at org.apache.spark.sql.DataFrameReader.loadV1Source(DataFrameReader.scala:223)
  at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:211)
  at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:178)
  ... 51 elided
*/
哈加瓦尔

Apache Hadoop提供以下文件系统客户端,用于读取和写入Amazon S3:

  1. S3(URI方案:s3)-由S3支持的基于块的文件系统的Ap​​ache Hadoop实现。

  2. S3A(URI方案:s3a)-S3A使用亚马逊的库与S3进行交互。S3A支持访问大于5 GB且最大5TB的文件,并提供性能增强和其他改进。

  3. S3N(URI方案:s3n)-用于在S3上读写常规文件的本机文件系统。s3n支持最大5GB的对象

参考:

从技术上讲,s3n,s3a和s3有什么区别?

https://web.archive.org/web/20170718025436/https://aws.amazon.com/premiumsupport/knowledge-center/emr-file-system-s3/

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法删除 S3 存储桶

来自分类Dev

使用tidyverse从S3存储桶读取数据

来自分类Dev

如何使用Glue读取多个S3存储桶?

来自分类Dev

使用boto3和python从S3存储桶目录中仅读取特定格式的文件

来自分类Dev

无法替换Amazon S3存储桶中的文件

来自分类Dev

无法使用Boto连接AWS S3存储桶

来自分类Dev

无法使用PHP显示S3存储桶

来自分类Dev

无法使用Boto连接AWS S3存储桶

来自分类Dev

使用 python boto 仅下载 S3 存储桶中的特定文件夹

来自分类Dev

如何使用python从S3存储桶中读取.txt文件并查看内容?

来自分类Dev

Tensorflow从AWS s3存储桶读取数据

来自分类Dev

从AWS S3存储桶读取的R reactFileFileReader

来自分类Dev

从s3存储桶读取gzip文件

来自分类Dev

从 s3 存储桶读取 json 文件

来自分类Dev

s3上的代码优化读取csv并提取回s3存储桶

来自分类Dev

S3 存储桶策略仅使某些文件类型可公开读取

来自分类Dev

无法使用ruby aws-sdk v2在S3中创建存储桶

来自分类Dev

Rails s3存储桶SSL

来自分类Dev

设置S3存储桶策略

来自分类Dev

Amazon S3安全存储桶

来自分类Dev

s3存储桶返回NoneType

来自分类Dev

确定S3存储桶区域

来自分类Dev

Amazon S3存储桶的Favicon

来自分类Dev

Android Amazon S3存储桶

来自分类Dev

从VPC访问S3存储桶

来自分类Dev

s3 JavaScript创建存储桶

来自分类Dev

亚马逊S3存储桶名称

来自分类Dev

Android Amazon S3存储桶

来自分类Dev

AWS S3存储桶问题