Ich habe aus zwei Gründen ein Problem beim Konvertieren: 1) wenn der Scan/Sink-Aufruf funktioniert Dateien sind etwa zehnmal so groß wie ihre CSV-Versionen; 2) Der Aufruf schlägt häufig fehl, weil das Vorhersageschema die Datentypen nicht ableiten kann.
Meine Frage lautet also: Wie kann ich den Scan/Sink-Aufruf dazu zwingen, nur Zeichendatentypen zu erstellen?
Mein Code lautet wie folgt:
Code: Select all
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)
Angesichts der Dateigrößen kann ich nicht garantieren, dass jede Spalte immer denselben Datentyp hat. Daher möchte ich erzwingen, dass der Datentyp jeder Spalte ein Zeichen ist, und mich dann später mit problematischen Spalten befassen/zu numerischen/Datumstypen wechseln. Wie mache ich das?
Danke für jede Hilfe.
Grüße,
James