Является ли хорошей идеей перераспределить 50 миллионов записей данных в фрейме данных? Если да, то кто-нибудь, пожалуйста, скажите мне, как это сделать - PullRequest
0 голосов
/ 05 сентября 2018

Мы собираемся обрабатывать большие данные (~ 50 миллионов записей) в нашей организации. Мы делим данные на основе даты и некоторых других параметров, но данные делятся не одинаково. Можем ли мы сделать перераспределение на нем для хорошей производительности?

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

Обычно разбиение - это хорошая идея, и, как уже сказал @Karthik, часто дата не самая лучшая идея. По моему опыту всегда имело смысл разделять ваши данные в зависимости от количества ваших работников. Так что в идеале размер вашего раздела должен быть кратным вашим рабочим Обычно мы используем 120 разделов, так как у нас в рабочей среде 24 человека, и в итоге получается такой код: new_df = spark.read.csv("some_csv.csv", header="true", escape="\"", quote="\"").repartition(100)

Мы также испытали более высокую производительность при работе с паркетом вместо CSV, что является компромиссом, поскольку данные должны быть прочитаны, перераспределены и снова сохранены, но на этапах анализа это окупилось. Так что, возможно, вам следует рассмотреть это преобразование.

0 голосов
/ 06 сентября 2018

В зависимости от вашей машины попробуйте сохранить фиксированное количество разделов. Всегда полезно разбивать разделы, но в большинстве случаев разбивать на основе даты не рекомендуется (не уверен, потому что я не знаю природу ваших данных).

...