sample
Das sample
-Kommando zieht nach dem Zufallsprinzip gleichmäßig Datensätze aus der Eingabe.
Hinweis
Beim Aufruf des Kommandos ist die Anzahl der gültigen Datensätze nicht bekannt. Deshalb wird für die Stichprobenziehung das Verfahren Reservoir sampling eingesetzt. Hierfür wird während der Laufzeit Arbeitsspeicher proportial zum gewünschten Stichprobenumfang \(n\) verwendet. Datensätze am Anfang der Eingabe haben eine höhere Wahrscheinlichkeit, in der Stichprobe enthalten zu sein, als Datensätze am Ende.
Im folgenden Beispiel werden zufällig 200 Datensätze aus der Eingabe ausgewählt und in die Datei samples.dat
geschrieben:
$ pica sample 200 DUMP.dat.gz -o samples.dat
Optionen
-g
,--gzip
- Komprimieren der Ausgabe im Gzip-Format.
--seed <number>
- Initialisiert den Zufallszahlengenerator mit einem seed-Wert, um eine deterministische Auswahl zu erhalten.
-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
Zufällige PPN-Liste
In Kombination mit dem select
-Kommando kann eine zufällige PPN-Liste erzeugt werden:
$ pica sample 3 DUMP.dat.gz | pica select -H 'ppn' '003@.0' -o samples.csv