我正在尝试使用spark将拼图文件从我的本地机器读写到S3。但是我似乎无法正确地配置我的spark会话来做到这一点。显然,需要进行一些配置,但我找不到关于如何进行配置的明确参考。
目前,我的spark会话读取本地拼图模拟,定义如下:
val sparkSession = SparkSession.builder.master("local").appName("spark session example").getOrCreate()发布于 2017-12-06 18:02:17
我将不得不稍微修改一下himanshuIIITian的帖子,(对不起)。
通常期望的可靠写入保证
发布于 2017-12-06 01:08:44
要使用本地Spark从S3读取和写入拼图文件,您需要在sbt项目中添加以下2个依赖项-
"com.amazonaws" % "aws-java-sdk" % "1.7.4"
"org.apache.hadoop" % "hadoop-aws" % "2.7.3"我假设这是一个sbt项目。如果它的mvn,则添加以下依赖项-
<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk</artifactId>
    <version>1.7.4</version>
</dependency>
<dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-aws</artifactId>
    <version>2.7.3</version>
</dependency>然后您需要在sparkSession中设置S3凭据,如下所示-
val sparkSession = SparkSession.builder.master("local").appName("spark session example").getOrCreate()
sparkSession.sparkContext.hadoopConfiguration.set("fs.s3n.impl", "org.apache.hadoop.fs.s3native.NativeS3FileSystem")
sparkSession.sparkContext.hadoopConfiguration.set("fs.s3n.awsAccessKeyId", "s3AccessKey")
sparkSession.sparkContext.hadoopConfiguration.set("fs.s3n.awsSecretAccessKey", "s3SecretKey")一切都结束了。现在,您可以将拼图文件读/写到S3。例如:
sparkSession.read.parquet("s3n://bucket/abc.parquet")    //Read
df.write.parquet("s3n://bucket/xyz.parquet")    //Write我希望它能有所帮助!
https://stackoverflow.com/questions/47652281
复制相似问题