我正在启动EMR群集,并且我已经创建了指定的in the EMR docs存储桶,但是我应该如何上传数据并从中读取?在我的spark提交步骤中,我说使用s3://myclusterbucket/scripts/script.py
的脚本名称是否输出不会自动上传到s3?如何处理依赖项?我已经尝试使用指向s3存储桶内的依赖zip的pyfiles,但继续找回文件'
答案 0 :(得分:1)
loaded_data = LOAD 's3://mybucket/myfile.txt' USING PigStorage();
不确定基于Python的Spark作业。但是一种解决方案是首先将对象从S3复制到EMR HDFS,然后在那里处理它们。
有多种方法可以复制:
使用hadoop fs
命令将对象从S3复制到EMR HDFS(反之亦然),例如hadoop fs -cp s3://mybucket/myobject hdfs://mypath_on_emr_hdfs
使用s3-dist-cp将对象从S3复制到EMR HDFS(反之亦然)http://docs.aws.amazon.com/emr/latest/ReleaseGuide/UsingEMR_s3distcp.html
您还可以使用awscli(或hadoop fs -copyToLocal
)将对象从S3复制到EMR主实例本地磁盘(反之亦然),例如aws s3 cp s3://mybucket/myobject .