相关疑难解决方法(0)

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

我知道https://wiki.apache.org/hadoop/AmazonS3的存在以及以下词语:

S3 Native FileSystem(URI scheme:s3n)用于在S3上读取和写入常规文件的本机文件系统.此文件系统的优点是您可以访问使用其他工具编写的S3上的文件.相反,其他工具可以访问使用Hadoop编写的文件.缺点是S3强加的文件大小限制为5GB.

S3A(URI方案:s3a)S3 Native的继承者s3n fs,S3a:系统使用亚马逊的库与S3交互.这允许S3a支持更大的文件(不超过5GB限制),更高性能的操作等等.文件系统旨在替代S3 Native的/后继者:只需替换URL模式,也可以从s3a访问从s3n:// URL访问的所有对象.

S3 Block FileSystem(URI scheme:s3)由S3支持的基于块的文件系统.文件存储为块,就像它们在HDFS中一样.这允许有效地实现重命名.此文件系统要求您为文件系统专用存储桶 - 不应使用包含文件的现有存储桶,也不应将其他文件写入同一存储桶.此文件系统存储的文件可能大于5GB,但它们不能与其他S3工具互操作.

为什么URI上的字母更改会产生这样的差异?例如

val data = sc.textFile("s3n://bucket-name/key")
Run Code Online (Sandbox Code Playgroud)

val data = sc.textFile("s3a://bucket-name/key")
Run Code Online (Sandbox Code Playgroud)

这种变化背后的技术差异是什么?有什么好文章我可以读到这个吗?

amazon-s3 amazon-web-services aws-sdk

105
推荐指数
2
解决办法
5万
查看次数

SparkContext,JavaSparkContext,SQLContext和SparkSession之间的区别?

  1. SparkContext, JavaSparkContext, SQLContext和之间有什么区别SparkSession
  2. 是否有任何方法可以使用SparkSession?转换或创建Context ?
  3. 我可以使用一个条目完全替换所有上下文SparkSession吗?
  4. 在所有的功能SQLContext,SparkContextJavaSparkContextSparkSession
  5. 有些功能parallelizeSparkContext和中有不同的行为JavaSparkContext.他们是如何表现的SparkSession
  6. 如何使用SparkSession?创建以下内容?

    • RDD
    • JavaRDD
    • JavaPairRDD
    • Dataset

有没有一种方法可以将a JavaPairRDD转换为a DatasetDataseta JavaPairRDD

java scala apache-spark rdd apache-spark-dataset

34
推荐指数
3
解决办法
1万
查看次数

通过Spark本地读取S3文件(或更好:pyspark)

我想通过Spark(pyspark,真的)从我的(本地)机器读取一个S3文件.现在,我不断收到身份验证错误

java.lang.IllegalArgumentException:必须将AWS Access Key ID和Secret Access Key指定为s3n URL的用户名或密码,或者分别设置fs.s3n.awsAccessKeyId或fs.s3n.awsSecretAccessKey属性.

我在这里和网上到处寻找,尝试了很多东西,但显然S3在过去一年或几个月里一直在变化,所有方法都失败了但是一个:

pyspark.SparkContext().textFile("s3n://user:password@bucket/key")
Run Code Online (Sandbox Code Playgroud)

(注意s3n[ s3不起作用]).现在,我不想使用带有用户和密码的URL,因为它们可以出现在日志中,我也不知道如何从~/.aws/credentials文件中获取它们.

那么,我如何使用来自现在标准 ~/.aws/credentials文件的AWS凭证(或者更好地,pyspark)从S3本地读取(理想情况下,不将凭证复制到另一个配置文件)?

PS:我想os.environ["AWS_ACCESS_KEY_ID"] = …os.environ["AWS_SECRET_ACCESS_KEY"] = …,也没有工作.

PPS:我不知道在哪里"设置fs.s3n.awsAccessKeyId或fs.s3n.awsSecretAccessKey属性"(Google没有提出任何建议).不过,我也尝试设置这些方法很多:SparkContext.setSystemProperty(),sc.setLocalProperty(),和conf = SparkConf(); conf.set(…); conf.set(…); sc = SparkContext(conf=conf).没有任何效果.

authentication credentials amazon-s3 apache-spark pyspark

23
推荐指数
2
解决办法
3万
查看次数

从S3存储桶读取文件到PySpark Dataframe Boto3

如何将S3存储桶中的一堆文件加载到单个PySpark数据帧中?我在EMR实例上运行。如果文件是本地文件,则可以使用SparkContext textFile方法。但是,当文件位于S3上时,如何使用boto3将多个类型(CSV,JSON等)的多个文件加载到单个数据框中进行处理?

amazon-s3 apache-spark boto3 pyspark

1
推荐指数
1
解决办法
5339
查看次数