Spark から S3 のファイルを開きたかったのでメモ
~/.profile に AWS Access Key と Secret を追加する。
下記の replace_here は正しいキーとシークレットに書き換える。
# vim ~/.profile export AWS_ACCESS_KEY_ID="replace_here" export AWS_SECRET_ACCESS_KEY="replace_here"
Pyspark 実行時に依存ライブラリを指定すればインストールしてくれる。
使ってる Spark/Hadoop のバージョンに合わせて下記を実行。
pyspark --packages org.apache.hadoop:hadoop-aws:3.3.4,com.amazonaws:aws-java-sdk-bundle:1.12.637
必要な jar ファイルのダウンロードが始まるのでしばらく待ったら使える。
で、コードを実行
from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("ReadFromS3") \ # .config("spark.hadoop.fs.s3a.access.key", "replace_here") \ # .config("spark.hadoop.fs.s3a.secret.key", "replace_here") \ .getOrCreate() df = spark.read.csv("s3a://orenomemo-s3-test/orders.csv", header=True, inferSchema=True) df.show()
上記の spark.hadoop.fs.s3a.access.key と spark.hadoop.fs.s3a.secret.key は環境変数で宣言してるからなくもOK.