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.
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
-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.
Filter-Optionen
-s
,--skip-invalid
- Überspringt jene Zeilen aus der Eingabe, die nicht dekodiert werden konnten.
-l <number>
,--limit <number>
- Eingrenzung der Ausgabe auf die ersten n Datensätze.
-i
,--ignore-case
- Groß- und Kleinschreibung wird bei Vergleichen ignoriert.
--strsim-threshold <value>
-
Festlegen des Schwellenwerts beim Ähnlichkeitsvergleich von Zeichenketten mittels
=*
. -A <file>
,--allow-list
<file>
- Es werden alle Datensätze ignoriert, die nicht explizit in der Positivliste auftauchen. Werden mehrere Positivlisten angegeben, wird die Mengenvereinigung aus allen Listen gebildet.
-D <file>
,--deny-list
<file>
- Es werden alle Datensätze ignoriert, die in der Negativliste auftauchen. Werden mehrere Negativlisten angegeben, wird die Mengenvereinigung aus allen Listen gebildet.
--filter-set-column <column>
-
Legt den Spaltennamen fest, der die Referenzwerte einer Allow- bzw. Deny-Liste enthält. Wird die Option nicht angegeben, werden die Werte aus der Spalte
ppn
bzw.idn
ausgelesen. Dieidn
-Spalte wird nur versucht zu lesen, wenn keineppn
-Spalte vorhanden ist. --filter-set-path <path>
-
Ein Pfadausdruck, der zur Ermittlung der Vergleichswerte genutzt wird. Ist die Option nicht angegeben, wird von einem Vergleich mit der PPN im Feld
003@.0
eines Datensatzes ausgegen. --where <expr>
- Angabe eines Filters, um Datensätze aus der Eingabe auszuwählen.
--and <expr>
-
Hinzufügen eines zusätzlichen Filters mittels der booleschen
&&
-Verknüpfung. Der ursprüngliche Filterausdruck<filter>
wird zum Ausdruck<filter> && <expr>
. --or <expr>
-
Hinzufügen eines zusätzlichen Filters mittels der booleschen
||
-Verknüpfung. Der ursprüngliche Filterausdruck<filter>
wird zum Ausdruck<filter> || <expr>
. --not <expr>
-
Hinzufügen eines zusätzlichen Filters. Der ursprüngliche Filterausdruck
<filter>
wird zum Ausdruck<filter> && !(<expr>)
.
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