J'essaie de lire un gros fichier en morceaux à partir de S3 sans couper aucune ligne pour le traitement en parallèle. Laissez-moi vous expliquer par l'exemple: Il y a un fichier de taille 1G sur S3. Je veux diviser ce fichier en mandrins de 64 Mo. C'est facile je peux le faire comme:Comment lire un fragment de fichier par segment à partir de S3 en utilisant aws-java-sdk
S3Object s3object = s3.getObject(new GetObjectRequest(bucketName, key));
InputStream stream = s3object.getObjectContent();
byte[] content = new byte[64*1024*1024];
while (stream.read(content) != -1) {
//process content here
}
mais le problème avec le morceau est qu'il peut avoir 100 lignes complètes et une incomplète. mais je ne peux pas traiter une ligne incomplète et je ne veux pas la rejeter.
Est-il possible de gérer cette situation? signifie que tous les mandrins n'ont pas de ligne partielle.