partition

Mittels des partition-Kommandos lassen sich Datensätze anhand eines Unterfelds in Partitionen einteilen.

Lassen sich Datensätze anhand von den Wertausprägungen in einem Unterfeld gruppieren, ist es mitunter hilfreich die Gesamtmenge der Datensätze in Partitionen aufzuteilen. Ist das Unterfeld, nach dem partitioniert werden soll, wiederholbar, sind die erzeugten Partitionen i.d.R. nicht disjunkt. Ein Datensatz der das Unterfeld nicht besitzt, geht in keine Partition ein.

Hinweis

Die Werte des Unterfelds ergeben den Dateinamen der Partition. Es kann vorkommen, dass die Werte Sonderzeichen enthalten, die nicht vom Betriebssystem in Dateinamen erlaubt sind.

Im folgenden Beispiel wird pro Entitätencode im Feld 004B.a eine Partition erstellt, die alle GND-Entitäten enthält, die diesem Entitätencode zugeordnet sind.

$ pica partition -s "004B.a" DUMP.dat.gz -o out
$ tree out/
out
├── gik.dat
├── piz.dat
├── saz.dat
└── wit.dat

Optionen

-s, --skip-invalid
Überspringt jene Zeilen aus der Eingabe, die nicht dekodiert werden konnten.
-i, --ignore-case
Groß- und Kleinschreibung wird bei Vergleichen ignoriert.
--strsim-threshold <value>
Festlegen des Schwellenwerts beim Ähnlichkeitsvergleich von Zeichenketten mittels =*.
-g, --gzip
Komprimieren der Ausgabe im Gzip-Format.
-t <string>, --template <string>
Template für die Dateinamen. Der Platzhalter {} wird durch den Namen der Partition ersetzt.
-p, --progress
Anzeige des Fortschritts, der die Anzahl der eingelesenen gültigen sowie invaliden Datensätze anzeigt.
-o <path>, --outdir <path>
Angabe, in welches Verzeichnis die Partitionen geschrieben werden sollen. Standardmäßig wird das aktuelle Verzeichnis verwendet.

Beispiele

Eingrenzen der Partitionen

Sollen nicht alle Partitionen erstellt werden, kann die Anzahl der möglichen Partition durch die Angabe eines Filterausdrucks eingegrenzt werden:

$ pica partition -s "004B{a | a in ['piz', 'saz']}" DUMP.dat.gz -o out
$ tree out/
out
├── piz.dat
└── saz.dat

Benutzerdefinierte Dateinamen

Standardmäßig werden die erstellten Partitionen nach den Werten im Unterfeld benannt. Der Dateiname kann individuell mit der -t/--template-Option angepasst werden. Jedes Vorkommen der Zeichenfolge {} im Template wird durch den Wert des Unterfelds ersetzt. Endet die Datei auf der Dateiendung .gz, wird die Ausgabe automatisch im Gzip-Format komprimiert.

$ pica partition -s "004B.a" --template "code_{}.dat.gz" DUMP.dat.gz -o out
$ tree out/
out
├── code_gik.dat.gz
├── code_piz.dat.gz
├── code_saz.dat.gz
└── code_wit.dat.gz

Komprimierte Ausgabe

Mittels der Option --gzip bzw. -g erfolgt eine Komprimierung der Ausgabe:

$ pica partition -s "004B.a" --gzip DUMP.dat.gz -o out
$ tree out/
out
├── gik.dat.gz
├── piz.dat.gz
├── saz.dat.gz
└── wit.dat.gz