Estou ciente da existência de https://wiki.apache.org/hadoop/AmazonS3 e das seguintes palavras:
S3 Native FileSystem (esquema URI: s3n) Um sistema de arquivos nativo para leitura e gravação de arquivos regulares no S3. A vantagem desse sistema de arquivos é que você pode acessar arquivos no S3 que foram escritos com outras ferramentas. Por outro lado, outras ferramentas podem acessar arquivos escritos usando Hadoop. A desvantagem é o limite de 5 GB no tamanho do arquivo imposto pelo S3.
S3A (esquema URI: s3a) Um sucessor do S3 Native, s3n fs, o S3a: sistema usa as bibliotecas da Amazon para interagir com o S3. Isso permite que o S3a ofereça suporte a arquivos maiores (limite máximo de 5 GB), operações de desempenho superior e muito mais. O sistema de arquivos pretende ser um substituto para / sucessor do S3 Native: todos os objetos acessíveis a partir de URLs s3n: // também devem ser acessíveis a partir de s3a simplesmente substituindo o esquema de URL.
S3 Block FileSystem (esquema URI: s3) Um sistema de arquivos baseado em bloco apoiado por S3. Os arquivos são armazenados como blocos, assim como no HDFS. Isso permite a implementação eficiente de renomeações. Este sistema de arquivos requer que você dedique um depósito para o sistema de arquivos - você não deve usar um depósito existente contendo arquivos ou gravar outros arquivos no mesmo depósito. Os arquivos armazenados por este sistema de arquivos podem ter mais de 5 GB, mas não são interoperáveis com outras ferramentas S3.
Por que uma mudança de letra no URI poderia fazer tanta diferença? Por exemplo
val data = sc.textFile("s3n://bucket-name/key")
para
val data = sc.textFile("s3a://bucket-name/key")
Qual é a diferença técnica subjacente a essa mudança? Há algum artigo bom que eu possa ler sobre isso?
s3a
esquema. É possível que a resposta deva ser revisada.