Чтение файла из s3a вместе с AWS Athena SDK (1.11+) - PullRequest
0 голосов
/ 17 октября 2018

Я пишу программу spark / scala, которая отправляет запрос в athena (использует aws-java-sdk-athena:1.11.420) и ожидает его завершения.Когда запрос завершен, моя программа spark непосредственно считывает данные из корзины S3, используя протокол s3a (место вывода запроса), используя функцию sparkSession.read.csv() spark.

Чтобы прочитать файл CSV, янужно использовать org.apache.hadoop.hadoop-aws:1.8+ и org.apache.hadoop.hadoop-client:1.8+.Обе эти библиотеки построены с использованием AWS SDK версии 1.10.6.Однако AWS athena не имеет SDK с этой версией.Самая старая версия, которую они имеют, это 1.11+.

Как мне разрешить конфликт?Мне нужно использовать последнюю версию AWS SDK, чтобы получить доступ к athena, но hadoop-aws подтолкнул меня к более старой версии?

Существуют ли другие зависимые версии hadoop-aws, использующие 1.11+ AWS SDK?Если да, то какие версии будут работать для меня?Если нет, какие еще варианты у меня есть?

1 Ответ

0 голосов
/ 17 октября 2018

Я обнаружил, что могу использовать hadoop-aws:3.1+, который идет с aws-java-sdk-bundle:1.11+.Этот комплект AWS SDK поставляется в комплекте с Athena.

I, хотя по-прежнему необходимо запускать spark с библиотеками hadoop-commons:3.1+.У меня есть спарк кластер 2.8 версии библиотеки.

Из-за моего спарк-кластера, работающего в версии 2.8, задания на отправку спарка не выполнялись, в то время как нормальное выполнение jar (java -jar myjar.jar) работало нормально.Это потому, что Spark заменял библиотеки hadoop, которые я предоставил, версией, с которой он был связан.

...