Я конвертирую данные из CSV в Parquet, используя Python (Pandas), чтобы позже загрузить их в Google BigQuery.У меня есть несколько целочисленных столбцов, которые содержат пропущенные значения, и, начиная с Pandas 0.24.0, я могу хранить их как Int64 dtype.
Есть ли способ использовать Int64 dtype также в файле паркета?Я не могу найти чистое решение для целых с отсутствующими значениями (поэтому они остаются как INTEGER в BigQuery).
Я попытался импортировать его непосредственно в BigQuery и получил ту же ошибку, что и при преобразовании в паркет с использованием Pandas (как показано ниже.)
Импортировать CSV со столбцом int, в котором отсутствует пропущенное значение:
import pandas as pd
df = pd.read_csv("docs/test_file.csv")
print(df["id"].info())
id 8, отличное от null float64
Строка импортируется как float64.Я изменяю тип на Int64:
df["id"] = df["id"].astype('Int64')
print(df["id"].info())
id 8 ненулевой Int64
Затем я пытаюсь сохранить паркет:
df.to_parquet("output/test.parquet")
Ошибка:
pyarrow.lib.ArrowTypeError: ('Не передан объект numpy.dtype', 'Преобразование не удалось для идентификатора столбца с типом Int64')