Огромные проблемы с наборами данных на AWS - PullRequest
0 голосов
/ 27 мая 2019

У меня есть 5 CSV файлов примерно по 20 ГБ каждый.

Я выполнил весь свой код, чтобы преобразовать и объединить их с пандами в выборках по 1 ходу каждый.

Теперь я использую свой код на реальных наборах данных в AWS EC2, и все еще с пандами.

Мои вопросы:

  1. Я думаю, что это бесполезно использоватьGPU для этой проблемы?Я ошибся?
  2. Должен ли я использовать библиотеку, отличную от Pandas (например, Dask?)
  3. Какой вид характеристик я должен выбрать для EC2?(Несколько процессоров или только один? ...)
  4. На данный момент мой код не выдает ошибок, но мой окончательный набор данных содержит только 100 строк.Являются ли данные слишком большими, поэтому Pandas автоматически игнорирует много строк ??

Большое спасибо

Вот пример кода, который я должен сделать для этих огромныхнаборы данных:

as_country = pd.merge(as_country, conventions_data, left_on='country', right_on = 'country_x', how = 'left')
as_country = as_country.dropna()
as_country = as_country.drop(columns=['countryname'])
as_country.enforce_date = as_country.enforce_date.astype(int)


as_country = as_country.drop(columns=['country_x', 'country_y','country_code','year'])
as_country['date_minus_enforcedate'] = as_country['date'] - as_country['enforce_date']
as_country['date_minus_enforcedate'] =  np.where((as_country.date_minus_enforcedate <= 0), -1, 1)
## AS_country will be just for one day and group by:

as_country = as_country.groupby(['as', 'country']).mean().reset_index()


as_country = as_country.drop(columns=['date', 'enforce_date'])
as_country_columns = list(as_country.columns)
as_country_columns.remove('as')
as_country_columns.remove('country')
as_country = as_country.pivot(index='as', columns='country', values=as_country_columns)
as_country = as_country.fillna(0)

1 Ответ

0 голосов
/ 27 мая 2019

Давайте возьмем это как расширенный комментарий.

  1. Я думаю, что бесполезно использовать GPU для этой проблемы? Я не прав?

Если это однократное вычисление, то да. В противном случае взгляните на cudf из rapids.ai или blazingSQL .

  1. Должен ли я использовать библиотеку, отличную от Pandas (например, Dask?)

Если ваши вычисления выполняются в памяти, вам не нужен Dask, смотрите docs

  1. Какие характеристики следует выбрать для EC2? (Несколько процессоров или только один? ...)

Я предлагаю вам оценить максимальное использование ОЗУ и получить на 10-20% больше. Количество ядер как-то связано (то есть у вас не может быть 1 ядра и 200 ГБ ОЗУ)

  1. На данный момент мой код не выдает ошибок, но мой окончательный набор данных содержит только 100 строк. Являются ли данные слишком большими, поэтому Pandas автоматически игнорирует много строк ??

Для этой проблемы, которая должна быть вашей главной задачей, вы должны проверять пошаговые команды. Мне странно, что вы сначала отбрасываете столбцы as и country, а затем используете их для поворота.

...