Da duckdb nur csv files mit UTF-8 Kodierung lesen kann, versuche ich die csv files, welche wahrscheinlich UTF-16LE sind nach UTF-8 zu konvertieren. Ich habe jetzt schon viel herumprobiert. Leider ohne Erfolg. Als Beispiel eine csv Datei ohne Header mit dem Namen 5.csv:
iconv -f UTF-16LE -t utf8 5.csv > 5a.csv
iconv: incomplete character or shift sequence at end of buffer
$ file -i 5.csv
5.csv: application/octet-stream; charset=binary
Athomas hat geschrieben: ↑Di Nov 14, 2023 11:33 pmBevor sich jemand wundert: wir haben inzwischen R verlassen...
Hallo, ich hatte den Thread erst mal stehen lassen, denn grundsätzlich könnte man das Problem sicher auch in R lösen. base enthält eine Funktion base::iconv die da als Anfang hilfreich sein könnte. Angesichts des Datenumfangs ist das in der Konsole sicher besser aufgehoben und wenn nicht mal Athomas mit einer stringi Lösung um die Ecke kommt, verschiebe ich den Thread jetzt mal in den Off topic Bereich.
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
mich würde aus Neugierde mal interessieren, wie lange so eine Umkodierung für eine 200GB-Datei in etwa dauert. Ganz grob. Ich habe gar keine Vorstellung davon.
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Die Umkodierung dauert ca. 3 Minuten. Ich muss dazu sagen, das ich zu Testzwecken einen VS-Server verwende. Wenn ich alle Berechnungen in R laufen, dann gibt es einen Rechner mit entsprechender Leistung.
CPU: 4 vCore
RAM: 8 GB
SSD: 160 GB
Zuletzt geändert von Aaron am Mi Nov 15, 2023 1:47 pm, insgesamt 4-mal geändert.
mich würde aus Neugierde mal interessieren, wie lange so eine Umkodierung für eine 200GB-Datei in etwa dauert.
Ist das lustig oder erschreckend - ich wollte genau diese Frage auch stellen !
@Aaron: Auf was für einer Maschine rechnest Du: Prozessor(en)/"Festplatte"?
Ich hatte mit DuckDB Experimente auf meinem ollen R-Server (2 x 14 Kerne Xeon mit 2.0 GHz und NVMe-SSD) gemacht, da war es eine Freude zu beobachten, wie DuckDB alle 56 Threads unter Dampf hielt...
Aaron hat geschrieben: ↑Mi Nov 15, 2023 1:25 pmDie Umkodierung dauert ca. 3 Minuten. [...]
CPU: 4 vCore
RAM: 8 GB
SSD: 160 GB
Du kopierst 200GB utf-16 in eine utf-8 Datei und das alles auf einer Platte, die nur 160 GB hat? Ich vermute, die 3 Minuten beziehen sich auf einen kleineren Testfall?
Athomas hat geschrieben: da war es eine Freude zu beobachten, wie DuckDB alle 56 Threads unter Dampf hielt...
Meine naive Vermutung war, dass der Plattenzugriff und nicht die Anzahl der Kerne/Threads der Flaschenhals ist. Hast Du da aufwändige Rechnungen betrieben, an denen der Computer länger rechnet als er auf die SSD schreibt, oder sind meine Vorstellungen falsch und stammen noch von der Datasette?
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte