ローカルスパークでS3から寄木細工のファイルを読み書きするには、あなたのsbt
プロジェクト -
で2つの依存関係以下を追加する必要があります
"com.amazonaws" % "aws-java-sdk" % "1.7.4"
"org.apache.hadoop" % "hadoop-aws" % "2.7.3"
私はそのプロジェクトをsbt
と仮定しています。そのmvn
はその後、以下を追加した場合dependencies-
<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>
は、その後、あなたはthis-
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")
とその行わように、sparkSession
でS3の資格情報を設定する必要があります。これで、ParquetファイルをS3に読み書きすることができます。例:
sparkSession.read.parquet("s3n://bucket/abc.parquet") //Read
df.write.parquet("s3n://bucket/xyz.parquet") //Write
私はそれが役に立ちそうです!
2つ目のノートで詳しく説明できますか?私はs3に安全に書き込むことができないのはどういう意味ですか?寄木張りのファイルを読むのはどうですか? – dlaredod
つまり、作業を行うコードはrename()のようなファイルシステムであり、実際には独自のコミットプロトコルを必要とするオブジェクトストアだと仮定しているため、S3を直接のデスティネーションとして使用することはできません。ファイルの読み込み:問題はありませんが、S3への直接書き込みです。危険。 https://www.youtube.com/watch?v=BgHrff5yAQoをご覧ください。 –