Получение частичного ответа JSON для s3select с помощью aws java sdk v2JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Получение частичного ответа JSON для s3select с помощью aws java sdk v2

Сообщение Anonymous »

Я пытаюсь реализовать s3select в приложении весенней загрузки для запроса файла паркета в корзине s3, я получаю только частичный результат из вывода s3select. Пожалуйста, помогите определить проблему, я использовал aws java sdk v2. p>
После проверки вывода json (напечатанного в консоли) общее количество символов в выводе составляет 65 тыс.
Я использую eclipse и попытался снять флажок «Ограничить консоль» вывод" в настройках консоли, что не помогло.
Код: -
import java.util.List;
import java.util.concurrent.CompletableFuture;

import software.amazon.awssdk.auth.credentials.AwsBasicCredentials;
import software.amazon.awssdk.auth.credentials.AwsCredentialsProvider;
import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider;
import software.amazon.awssdk.core.async.SdkPublisher;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3AsyncClient;
import software.amazon.awssdk.services.s3.model.CompressionType;
import software.amazon.awssdk.services.s3.model.EndEvent;
import software.amazon.awssdk.services.s3.model.ExpressionType;
import software.amazon.awssdk.services.s3.model.InputSerialization;
import software.amazon.awssdk.services.s3.model.JSONOutput;
import software.amazon.awssdk.services.s3.model.OutputSerialization;
import software.amazon.awssdk.services.s3.model.ParquetInput;
import software.amazon.awssdk.services.s3.model.RecordsEvent;
import software.amazon.awssdk.services.s3.model.SelectObjectContentEventStream;
import software.amazon.awssdk.services.s3.model.SelectObjectContentEventStream.EventType;
import software.amazon.awssdk.services.s3.model.SelectObjectContentRequest;
import software.amazon.awssdk.services.s3.model.SelectObjectContentResponse;
import software.amazon.awssdk.services.s3.model.SelectObjectContentResponseHandler;

public class ParquetSelect {

private static final String BUCKET_NAME = "";
private static final String KEY = "";
private static final String QUERY = "select * from S3Object s";
public static S3AsyncClient s3;

public static void selectObjectContent() {
Handler handler = new Handler();

SelectQueryWithHandler(handler).join();

RecordsEvent recordsEvent = (RecordsEvent) handler.receivedEvents.stream()
.filter(e -> e.sdkEventType() == EventType.RECORDS)
.findFirst()
.orElse(null);

System.out.println(recordsEvent.payload().asUtf8String());

}

private static CompletableFuture SelectQueryWithHandler(SelectObjectContentResponseHandler handler) {
InputSerialization inputSerialization = InputSerialization.builder()
.parquet(ParquetInput.builder().build())
.compressionType(CompressionType.NONE)
.build();

OutputSerialization outputSerialization = OutputSerialization.builder()
.json(JSONOutput.builder().build())
.build();

SelectObjectContentRequest select = SelectObjectContentRequest.builder()
.bucket(BUCKET_NAME)
.key(KEY)
.expression(QUERY)
.expressionType(ExpressionType.SQL)
.inputSerialization(inputSerialization)
.outputSerialization(outputSerialization)
.build();

return s3.selectObjectContent(select, handler);
}

private static class Handler implements SelectObjectContentResponseHandler {
private SelectObjectContentResponse response;
private List receivedEvents = new ArrayList();
private Throwable exception;

@Override
public void responseReceived(SelectObjectContentResponse response) {
this.response = response;
}

@Override
public void onEventStream(SdkPublisher publisher) {
publisher.subscribe(receivedEvents::add);
}

@Override
public void exceptionOccurred(Throwable throwable) {
exception = throwable;
}

@Override
public void complete() {
}
}

}


Подробнее здесь: https://stackoverflow.com/questions/755 ... ava-sdk-v2
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Конфликт AWS между aws.java.sdk.core и aws.java.sdk.s3 jdk 21
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Конфликт AWS между aws.java.sdk.core и aws.java.sdk.s3 jdk 21
    Anonymous » » в форуме JAVA
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Правильный способ уведомить http-клиента об ошибке после отправки частичного ответа в Java http
    Гость » » в форуме JAVA
    0 Ответы
    69 Просмотры
    Последнее сообщение Гость
  • AWS Java SDK не находит профиль при использовании AWS SSO
    Anonymous » » в форуме JAVA
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • Скопируйте большой файл из AWS S3, используя AWS SDK для Java
    Anonymous » » в форуме JAVA
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»