Оптимизация разбиения данных в Spark - PullRequest
0 голосов
/ 26 апреля 2018

Я читаю кучу журналов, которые выглядят примерно так:

id type amt
 0    A 100
 1    B 200
 2    A 100
 3    A 300
 4    B 100
 5    A 100
 6    C 200
 7    C 100
 8    A 200

Я хочу разделить эти данные по типу, чтобы каждый из типов A, B и C находился на своей машине. Проблема в том, что шаг разбиения слишком медленный для моего размера данных. Данные поступают ко мне в формате строк, поэтому я читаю в каждой строке и анализирую их, чтобы получить типы и тому подобное. Есть ли способ ускорить извлечение и разбиение, выполняя разбиение на лету как часть этапа разбора? Просто ищу идеи о том, как ускорить его, если все, что я хочу сделать, это извлечь данные и записать их на диск с разделами. Я использую scala.

1 Ответ

0 голосов
/ 26 апреля 2018

если может помочь, если вы поделитесь кодом, чтобы узнать, как вы это делаете Самый простой способ записать файл, разбитый на поле, изменить ввод данных на набор данных, а затем:

result.repartition($"type").write.save(/.../path)

если вы хотите поместить в таблицу кустов с разделенным столбцом, попробуйте:

result.repartition($"type").partitionBy("type").write.save(/.../path_to_table)

это даст путь как / user / hive / warehouse / table_name / type = A / part - ***

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