我正在尝试从 S3 读取一个大型 CSV 文件。我的 GZip 格式文件大小为 100MB,我需要解压缩然后读取 csv 数据。
所以我在下面找到了相同的答案,下面的代码片段可以解决问题。
S3Object fileObj = client.getObject(bucketName, repoPath);
BufferedReader reader = new BufferedReader(new InputStreamReader(new GZIPInputStream(fileObj.getObjectContent())));
BufferedWriter fileWriter = new BufferedWriter(new FileWriter(new File("output.json")));
String line = null;
while ((line = reader.readLine()) != null) {
//convert csv data to json
fileWriter.write(line +"\n");
}
fileWriter.flush();
fileWriter.close();
我对上面的代码有两个查询:
- 提取在本地系统临时目录/JVM 或 S3 上发生在哪里?
- 它是如何解决内存问题的?
使用 spark 时,需要更多时间,我不确定如何在 spark 中处理 gz 文件。