Я пытаюсь использовать Pandas и Pyarrow для паркетных данных. У меня есть сотни файлов паркета, которые не должны иметь одинаковую схему, но если столбцы совпадают между паркетами, они должны иметь одинаковый тип данных.
Я попадаю в ситуации, когда результирующие типы данных паркета не соответствуют моим ожиданиям. Например, я могу записать int64
в столбец, и полученный паркет будет в формате double
. Это вызывает много проблем на стороне обработки, где 99% данных вводятся правильно, но в 1% случаев это просто неправильный тип.
Я пытался импортировать numpy и упаковывать значения таким образом-
import numpy as np
pandas.DataFrame({
'a': [ np.int64(5100), np.int64(5200), np.int64(5300) ]
})
Но я все еще получаю случайный дубль, так что, должно быть, это неправильный способ сделать это. Как я могу обеспечить согласованность типов данных по столбцам в файлах паркета?
Обновление-
Я обнаружил, что это происходит только тогда, когда столбец содержит один или несколько None
с.
data_frame = pandas.DataFrame({
'a': [ None, np.int64(5200), np.int64(5200) ]
})
Может ли паркет не обрабатывать смешанные столбики None-int64?