Создать схему пиарроу в формате списка pa.fields? - PullRequest
0 голосов
/ 16 марта 2020

Можно ли мне сгенерировать схему пиарроу в этом формате из pandas DF? У меня есть несколько файлов с сотнями столбцов, поэтому я не могу набрать их вручную.

fields = [
    pa.field('id', pa.int64()),
    pa.field('date', pa.timestamp('ns')), 
    pa.field('name', pa.string()), 
    pa.field('status', pa.dictionary(pa.int8(), pa.string(), ordered=False),
]

Я хотел бы сохранить его в файл и затем явно обратиться к нему при сохранении данных с помощью to_parquet. .

Я пытался использовать schema = pa.Schema.from_pandas(df), но когда я распечатываю схему, она имеет другой формат (я не могу сохранить ее как список кортежей типов данных, как в примере с полями выше).

В идеале я бы взял словарь pandas dtype и затем переназначил его в список полей выше. Возможно ли это?

schema = {
  'id': 'int64',
  'date': 'datetime64[ns]', 
  'name': 'object', 
  'status': 'category',
}

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

...