Явное приведение ленивого кадра невозможно из-за несоответствия типов?Python

Программы на Python
Ответить
Anonymous
 Явное приведение ленивого кадра невозможно из-за несоответствия типов?

Сообщение Anonymous »

Я использую поляры всего несколько месяцев (исходя из pandas), так что простите меня, если я что-то неправильно интерпретирую :)
Я хочу прочитать множество файлов паркета, объединить их в один фрейм данных и затем записать это на диск. Поскольку в некоторых файлах есть столбцы неправильного типа, я пытаюсь выполнить явное приведение

Код: Выделить всё

df = pl.scan_parquet('../output/extraction/part_*.parquet')

schema = {
'station_id': pl.String,
'datetime_utc': pl.Datetime(time_unit='ns', time_zone='UTC'),
'rain_rate': pl.Float64,
}

df = df.with_columns([
pl.col(name).cast(dtype, strict=False) for name, dtype in schema.items()
])

df.sink_parquet('../output/extraction/merged.parquet')
Но я получаю SchemaError: несоответствие типа данных для столбца Rain_rate: ожидаемо: двоичный, найдено: f64.
Эта версия работает без проблем

Код: Выделить всё

dfs = []
for file in glob('../output/extraction/part_*.parquet'):
df = pl.read_parquet(file)
df = df.with_columns([
pl.col(name).cast(dtype, strict=False) for name, dtype in schema.items()
])
dfs.append(df)

df = pl.concat(dfs)
df.write_parquet('../output/extraction/merged.parquet')
Я отчасти понимаю эту ошибку, и энергичная версия работает для меня, поскольку у меня не так много файлов, но это может стать проблемой, если я работаю с большим объемом данных.
Нет ли способа сделать то же самое с отложенными кадрами данных?
>

Подробнее здесь: https://stackoverflow.com/questions/793 ... e-mismatch
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»