Некоторые дополнительные сведения: мои наборы данных обычно структурированы как минимум на две версии:
- историческая
- финальная
Затем я читаю набор исторических данных с помощью фильтров, конвертирую его в DF pandas, сортирую данные, а затем удаляю дубликаты в некоторые уникальные столбцы ограничений.
Код: Выделить всё
dataset = ds.dataset(history, filesystem, partitioning)
table = dataset.to_table(filter=filter_expression, columns=columns)
df = table.to_pandas().sort_values(sort_columns, ascending=True).drop_duplicates(unique_constraint, keep="last")
table = pa.Table.from_pandas(df=df, schema=table.schema, preserve_index=False)
# ds.write_dataset(final, filesystem, partitioning)
# I tend to write the final dataset using the legacy dataset so I can make use of the partition_filename_cb - that way I can have one file per date_id. Our visualization tool connects to these files directly
# container/dataset/date_id=20210127/20210127.parquet
pq.write_to_dataset(final, filesystem, partition_cols=["date_id"], use_legacy_dataset=True, partition_filename_cb=lambda x: str(x[-1]).split(".")[0] + ".parquet")
Подробнее здесь: https://stackoverflow.com/questions/659 ... rrow-table
Мобильная версия