gpt4 book ai didi

scala - 尝试使用本地 Spark 从 s3 读取和写入 Parquet 文件

转载 作者:行者123 更新时间:2023-12-05 00:49:30 27 4
gpt4 key购买 nike

我正在尝试使用 spark 从本地机器读取和写入 Parquet 文件到 S3。但我似乎无法正确配置我的 spark session 来这样做。显然需要进行配置,但我找不到有关如何进行配置的明确引用。

目前,我的 spark session 读取本地 Parquet 模拟并定义如下:

val sparkSession = SparkSession.builder.master("local").appName("spark session example").getOrCreate()

最佳答案

要使用本地 Spark 从 S3 读取和写入 parquet 文件,您需要在 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")

它完成了。现在,您可以将 Parquet 文件读/写到 S3。例如:
sparkSession.read.parquet("s3n://bucket/abc.parquet")    //Read
df.write.parquet("s3n://bucket/xyz.parquet") //Write

我希望它有帮助!

关于scala - 尝试使用本地 Spark 从 s3 读取和写入 Parquet 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47652281/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com