Я прочитал около 15 CSV-файлов:
df = dd.read_csv("gs://project/*.csv", blocksize=25e6,
storage_options={'token': fs.session.credentials})
Затем я сохранил Dataframe (он использует 7,33 ГБ памяти):
df = df.persist()
Я установил новый индекс, потому чтоЯ хочу, чтобы моя группа в этом поле была максимально эффективной:
df = df.set_index('column_a').persist()
Теперь у меня 181 подразделение и 180 разделов.Чтобы проверить, как быстро работала моя группа, я попробовал пользовательскую функцию применения, которая просто печатает Dataframe группы:
grouped_by_index = df.groupby('column_a').apply(lambda n: print(n)).compute()
, которая печатала Dataframe с правильными столбцами, но значения были либо "1", "foo"или" Правда ".Пример:
column_b column_c column_d column_e column_f column_g \
index
a foo 1 foo 1 1 1
Я также получаю предупреждение:
/ opt / conda / lib / python3.7 / site-packages / ipykernel_launcher.py: 1: UserWarning: meta
не указано, выведено из частичных данных.Пожалуйста, укажите meta
, если результат будет неожиданным.До: .apply (func) После: .apply (func, meta = {'x': 'f8', 'y': 'f8'}) для результата фрейма данных или: .apply (func, meta = ('x'), 'f8'))
для результата серии "" "Точка входа для запуска ядра IPython.
Что здесь происходит?