在sc.parallelize内部的每个执行器上下载文件

时间:2019-05-02 02:25:59

标签: scala apache-spark

aws s3中有很多gz文件。 gz文件中包含json。我需要逐行阅读json并进行处理。 objectKeys是所有gz文件的s3路径的字符串列表。我有这样的代码:

val localInputDirPath = "/data/input-data/";
sc.parallelize(objectKeys).foreach(objectSummary => {
   s3Client.getObject(new GetObjectRequest(awsBucketName, objectSummary), new File(localInputDirPath + objectSummary)); 
}

但是我收到错误消息无法在路径中创建目录。 我下载文件的原因是因为我不确定是否可以直接处理s3 gz文件。

我知道sc.parallelize内部的代码将在executor上运行。如何在sc.parallelize中下载文件,以便我可以成功处理它们

0 个答案:

没有答案