Почему существует масса задач для загрузки файла CSV в корзину S3? - PullRequest
0 голосов
/ 21 января 2019

У меня есть небольшой автономный кластер spark с динамическим распределением ресурсов, который использует aws s3 в качестве хранилища, затем я запускаю spark sql, создаю внешнюю таблицу загрузки кустов из файла csv размером 779,3 КБ в корзину s3, когда я выполняю sql «select count (1) from sales;», в задании spark sql точно 798009 задач, как задача на байт. И "spark.default.parallelism" не работает. Есть какой-нибудь совет?

Ответы [ 3 ]

0 голосов
/ 21 января 2019

use spark.sql.shuffle.partitions = 2

0 голосов
/ 21 января 2019

Если вы используете Jad-файлы Hadoop 2.6, то это ошибка в этой версии s3a; если вы видите это в другом месте, то это может быть проблема конфигурации.

Ваш файл разбивается на один раздел на байт, потому что файловая система говорит "каждый раздел имеет длину в один байт". Это означает, что FileSystem.getBlockSize() возвращает значение "0" (ср. HADOOP-11584 : s3a Размер блока файла установлен в 0 в getFileStatus ).

Для разъема s3a убедитесь, что вы используете 2.7+, а затем установите fs.s3a.block.size на что-то вроде 33554432 (т.е. 32MB), после чего ваш исходный файл вообще не будет разделен.

Если вы можете пойти до 2,8; мы проделали большую работу по ускорению ввода и вывода, особенно в отношении ввода-вывода в формате столбца и его шаблонов поиска.

0 голосов
/ 21 января 2019

Попробуйте DF.repartition (1) перед выполнением запроса. При выполнении этой команды должно быть слишком много номеров разделов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...