Я пытаюсь прочитать большой файл CSV с S3. Размер моего файла составляет 100 МБ в формате GZip, который мне нужно разархивировать, а затем прочитать данные 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?
- Как решается проблема с памятью?
При использовании искры это занимает больше времени, и я не знаю, как обрабатывать файл gz в искре.