Принудительный тип схемы с использованием сканирования/приемника полярностейPython

Программы на Python
Ответить
Anonymous
 Принудительный тип схемы с использованием сканирования/приемника полярностей

Сообщение Anonymous »

У меня есть большое количество CSV-файлов (около 100 000), некоторые из которых сами по себе являются большими CSV-файлами (т. е. >128 ГБ), и я пытаюсь преобразовать их в файлы Parquet. Файлы содержат смесь символьных, числовых данных и данных даты, хранящихся в формате CSV.
У меня возникла проблема с их преобразованием по двум причинам: 1) когда вызов сканирования/приемника работает, файлы примерно в 10 раз превышают свои версии CSV; 2) вызов часто завершается сбоем, поскольку прогнозирующая схема не может определить типы данных.
Итак, мой вопрос: как я могу заставить вызов сканирования/приемника создавать только символьные типы данных?
Мой код выглядит следующим образом:

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

import os
import polars as pl

dir_list = os.listdir()

for filename in dir_list:
if ".txt" in filename: pl.scan_csv(filename,separator="|").sink_parquet(filename.replace(".txt",".parquet"),type_coercion=False,compression="zstd",compression_level=11)
Когда при выполнении этого процесса встречается столбец, который изначально выглядит как один тип данных для пакета, он делает вывод об этом типе данных. Однако, если следующий пакет включает в себя что-то противоречивое, выдается ошибка.
Учитывая размеры файлов, я не могу гарантировать, что какой-либо столбец всегда будет иметь один и тот же тип данных. Таким образом, я хочу заставить тип данных каждого столбца быть символьным, а затем позже разобраться с проблемными столбцами/переключиться на числовые типы/типы дат. Как мне это сделать?
Спасибо за любую помощь.
С уважением,
Джеймс

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

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

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

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

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

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