Надеюсь, я не ошибаюсь в этом вопросе, но, похоже, здесь вы конвертируете авро в паркет, и вы хотите загрузить паркет в s3
После того, как вы закроете ParquetWriter, вам следует вызовите метод, который выглядит следующим образом (при условии, что он не перехватывает поток записи из avro в паркет, он просто передает поток файла партера, в который больше не производится запись):
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials("ACCESS_KEY", "SECRET_KEY"))).build();
S3Path outputPath = new S3Path();
outputPath.setBucket("YOUR_BUCKET");
outputPath.setKey("YOUR_FOLDER_PATH");
try {
InputStream parquetStream = new FileInputStream(new File(parquetFile));
s3Client.putObject(outputPath.getBucket(), outputPath.getKey(), parquetStream, null);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
с использованием AWS SDK
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.749</version>
</dependency>
Конечно, метод должен находиться в другом классе utils, и конструктор этого метода должен инициализировать s3Client AmazonS3 с учетными данными, поэтому все, что вам нужно сделать, это вызвать и получить доступ к его Член s3Client для размещения объектов
надеюсь, это поможет