Referenz für Table Function Operators
Der Tabellenfunktionsoperator stellt eine Liste integrierter Tabellenfunktionen bereit, mit denen Sie in einem Datenfluss Daten in Form von Tabellen zurückgeben können.
Siehe Tabellenfunktionsoperator.
Im Folgenden finden Sie eine Liste der integrierten Tabellenfunktionen, die vom Tabellenfunktionsoperator unterstützt werden.
Speichert und speichert ein Dataset gemäß dem angegebenen Arbeitsspeicher level
.
Gibt ein neues Dataset im gecachten resilienten verteilten Dataset (RDD) zurück.
Parameter | Beschreibung |
---|---|
level |
Der zu verwendende Speicherspeicher:
|
Berechnet eine paarweise Häufigkeits- oder Eventualfalltabelle aus eindeutigen Werten der angegebenen beiden Spalten.
Die Anzahl der eindeutigen Werte für jede Spalte muss kleiner als 1e4 sein.
Gibt einen Datenframe zurück, der die Eventualfalltabelle enthält. In der Notfalltabelle:
- Der Name der ersten Spalte lautet
col1_col2
, wobeicol1
die erste Spalte undcol2
die zweite Spalte vor der Transformation ist. Die erste Spalte jeder Zeile sind die eindeutigen Werte voncol1
. - Die anderen Spaltennamen sind die eindeutigen Werte von
col2
. - Die Zählungen werden als Typ
long
zurückgegeben. - Paare ohne Vorkommen werden als Anzahl Null angegeben.
- Die maximale Anzahl von Paaren ungleich Null beträgt 1e6.
- Null-Elemente werden durch
null
ersetzt.
Parameter | Beschreibung |
---|---|
col1 |
Name der ersten Spalte. Einschränkungen finden Sie im Hinweis nach dieser Tabelle. Eindeutige Elemente aus |
col2 |
Name der zweiten Spalte. Einschränkungen finden Sie im Hinweis nach dieser Tabelle. Eindeutige Elemente aus |
In einem Spaltennamen sind nur die folgenden Zeichen zulässig:
- Klein- und Großbuchstaben
a-z
A-Z
- Zahlen
0-9
- Unterstrich
_
Beispiel
Angenommen, col1
ist age
und col2
ist salary
.
Vor der Transformation:
+---+------+
|age|salary|
+---+------+
|1 |100 |
|1 |200 |
|2 |100 |
|2 |100 |
|2 |300 |
|3 |200 |
|3 |300 |
+---+------+
Nach der Transformation:
+----------+---+---+---+
|age_salary|100|200|300|
+----------+---+---+---+
|2 |2 |0 |1 |
|1 |1 |1 |0 |
|3 |0 |1 |1 |
+----------+---+---+---+
Generiert einen mehrdimensionalen Cube aller möglichen Kombinationen anhand der angegebenen Spaltenliste und der Berechnungen in den angegebenen Aggregatfunktionsausdrücken.
Die folgenden Aggregatfunktionen werden in den Ausdrücken unterstützt:
AVG
COUNT
MEAN
MAX
MIN
SUM
Gibt nach der Cube-Transformation einen Datenframe zurück.
Parameter | Beschreibung |
---|---|
cubeColumns |
Die durch Kommas getrennte Liste der Spalten, durch die der mehrdimensionale Cube generiert wird. |
aggExpressions |
Die Aggregatfunktionsausdrücke, die für die Spalten ausgeführt werden sollen. Beispiel: |
Beispiel
Vor der Transformation:
+----------+-----+-------+------+---+
|department|group|region |salary|age|
+----------+-----+-------+------+---+
|Eng |A |local |1000 |10 |
|Art |B |foreign|2000 |11 |
|Sport |C |local |1500 |13 |
|Eng |A |foreign|800 |19 |
|Art |A |foreign|3000 |30 |
|Eng |E |foreign|1000 |21 |
|Art |D |local |1000 |32 |
|Sport |C |local |1000 |28 |
+----------+-----+-------+------+---+
Wenn cubeColumns
department, region
und aggExpressions
salary -> avg, age -> max
ist (das Durchschnittsgehalt und das Höchstalter berechnen), lautet der After-Transformation-Cube:
+----------+-------+-----------------+--------+
|department|region |avg(salary) |max(age)|
+----------+-------+-----------------+--------+
|Eng |foreign|900.0 |21 |
|Sport |null |1250.0 |28 |
|Art |null |2000.0 |32 |
|Eng |null |933.3333333333334|21 |
|null |local |1125.0 |32 |
|Art |foreign|2500.0 |30 |
|null |foreign|1700.0 |30 |
|Eng |local |1000.0 |10 |
|null |null |1412.5 |32 |
|Sport |local |1250.0 |28 |
|Art |local |1000.0 |32 |
+----------+-------+-----------------+--------+
Generiert synthetische Daten mit dem angegebenen Dateiformat und Inhalt. Folgende Dateiformate werden unterstützt:
- CSV
- JSON
Gibt eine Datenentity zurück. Die synthetische Datenquelle kann in Pipeline-Einheitentests verwendet werden, bei denen reale Daten nicht verwendet oder verschoben werden.
Parameter | Beschreibung |
---|---|
format |
Der Dateityp. Unterstützte Werte sind:
|
content |
Der Dateiinhalt für das angegebene Format. |
Beispiel
Beispiel für einen CSV-Inhalt:
co1,co2,co3
1,B,3
A,2,C
Ergebnis der Datengenerierung:
+---+---+---+
|co1|co2|co3|
+---+---+---+
|1 |B |3 |
+---+---+---+
|A |2 |C |
+---+---+---+
Sucht Duplikate in der angegebenen Spaltenliste und gibt ein neues Dataset zurück, wobei die doppelten Zeilen entfernt wurden.
Parameter | Beschreibung |
---|---|
columns |
Ein Spaltenname oder eine durch Komma getrennte Liste mit Spaltennamen. |
Beispiel
Vor der Transformation:
+---+---+
|a |b |
+---+---+
|1 |2 |
|3 |4 |
|1 |3 |
|2 |4 |
+---+---+
Wenn columns
a
ist, lautet das Dataset nach der Transformation:
+---+---+
|a |b |
+---+---+
|1 |2 |
|3 |4 |
|2 |4 |
+---+---+
Sucht häufige Elemente in der angegebenen Spalte oder Spaltenliste mit der angegebenen Mindesthäufigkeit.
Der von Karl et al. vorgeschlagene Algorithmus für häufige Elementanzahl wird verwendet, um häufige Elemente zu finden. Falsche Positive sind möglich.
Gibt einen Datenbereich mit einem Array von häufigen Elementen für jede Spalte zurück.
Parameter | Beschreibung |
---|---|
freqItems |
Ein Spaltenname oder eine durch Komma getrennte Liste mit Spaltennamen, für die Sie häufige Elemente suchen möchten. |
support |
Minimale Häufigkeit, mit der ein Artikel als häufig betrachtet wird. Der Wert muss größer als 1e-4 sein (Dezimalwert von Beispiel: |
Beispiel
Vor der Transformation:
+-------+--------------+
|user_id|favorite_fruit|
+-------+--------------+
| 1| apple|
| 2| banana|
| 3| apple|
| 4| orange|
| 5| banana|
| 6| banana|
| 7| apple|
+-------+--------------+
Wenn freqItems
favorite_fruit
und support
0.6
ist, lautet der nach der Transformation zurückgegebene Dataframe:
+------------------------+
|favorite_fruit_freqItems|
+------------------------+
| [banana]|
+------------------------+
Entfernt Zeilen, die Null- oder NaN-Werte in der angegebenen Spalte oder Spaltenliste enthalten.
Gibt einen Datenbereich zurück, der die Zeilen ausschließt.
Parameter | Beschreibung |
---|---|
how |
Gibt an, ob eine Zeile gelöscht werden soll. Unterstützte Werte sind:
Der Parameter |
cols |
Ein Spaltenname oder eine durch Komma getrennte Liste mit Spaltennamen. |
minNonNulls |
Die Mindestanzahl von Werten, die eine Zeile enthalten kann, die nicht Null und nicht NaN sind. Löscht die Zeilen, die weniger als das angegebene Minimum enthalten. Der Parameter |
Beispiel
Vor der Transformation:
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Alice |25 |
|2 |null |28 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
Wenn how
any
und cols
name
ist, lautet der nach der Transformation zurückgegebene Dataframe:
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Alice |25 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
Wenn Sie den Parameter how
mit dem Wert all
verwenden, wird eine Zeile nur gelöscht, wenn alle zugehörigen Werte Null sind. Beispiel vor der Transformation:
+----+--------+----+
| id| name| age|
+----+--------+----+
| 1|John Doe| 30|
| 2| null|null|
| 3|Jane Doe| 25|
| 4|Jake Doe|null|
|null| null|null|
+----+--------+----+
Nach der Transformation:
+---+--------+----+
| id| name| age|
+---+--------+----+
| 1|John Doe| 30|
| 2| null|null|
| 3|Jane Doe| 25|
| 4|Jake Doe|null|
+---+--------+----+
Ersetzt Nullwerte und gibt einen Datenframe mit den ersetzten Werten zurück.
Parameter | Beschreibung |
---|---|
replacement |
Die Schlüssel/Wert-Zuordnung zum Ersetzen von Nullwerten. Der Schlüssel ist ein Spaltenname. Der Wert ist ein Ersatzwert. Der Schlüssel verweist auf den Ersatzwert. Beispiel: Ein Ersatzwert wird in den Datentyp der Spalte konvertiert. Ein Ersatzwert muss den folgenden Typ aufweisen:
|
Beispiel
Vor der Transformation:
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Alice |25 |
|2 |null |28 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
Wenn die Schlüssel/Wert-Zuordnung folgendermaßen lautet:
id -> 3
name -> unknown
age -> 10
Nach der Transformation:
+---+-------+---+
|id |name |age|
+---+-------+---+
|1 |Alice |25 |
|2 |unknown|28 |
|3 |Bob |10 |
|4 |Charlie|30 |
+---+-------+---+
Ersetzt einen Wert durch einen anderen Wert in der oder den angegebenen Spalten, indem Schlüssel in der angegebenen Schlüssel- und Ersatzwertzuordnung übereinstimmen.
Gibt einen neuen Datenframe zurück, der die ersetzte Transformation enthält.
Parameter | Beschreibung |
---|---|
cols |
Ein Spaltenname oder eine durch Komma getrennte Liste von Spaltennamen, auf die Ersatzwerte angewendet werden sollen. Wenn |
replacement |
Die zu verwendende Ersatzschlüssel/Wert-Zuordnung. Der Schlüssel ist ein zu ersetzender Wert. Der Wert ist der Ersetzungswert. Der Zuordnungswert kann Nullen enthalten. Der Schlüssel verweist auf den Ersatzwert. Beispiel: Das Schlüssel-Ersatzwertpaar muss denselben Typ haben. Nur die folgenden Typen werden unterstützt:
|
Beispiel
Vor der Transformation:
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Alice |25 |
|2 |null |28 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
Wenn cols
name
und replacement
Alice -> Tom
ist, lautet der Dataframe nach der Transformation:
+----+-------+----+
|id |name |age |
+----+-------+----+
|1 |Tom |25 |
|2 |null |28 |
|null|Bob |null|
|4 |Charlie|30 |
+----+-------+----+
Teilt ein Dataset durch die angegebenen Spalten in die angegebene Anzahl von Partitionen auf.
Gibt ein neues Dataset zurück, das mit Hash partitioniert ist. Die genaue Anzahl der angegebenen Partition wird zurückgegeben.
Parameter | Beschreibung |
---|---|
partitionColumns |
Ein Spaltenname oder eine durch Komma getrennte Liste von Spaltennamen, nach denen das Dataset partitioniert ist. |
numberOfPartitions |
Die Anzahl von zu erstellenden Partitionen. |
Generiert ein mehrdimensionales Rollup möglicher Kombinationen anhand der angegebenen Spaltenliste und der Berechnungen in den angegebenen Aggregatfunktionsausdrücken.
Die folgenden Aggregatfunktionen werden in den Ausdrücken unterstützt:
AVG
COUNT
MEAN
MAX
MIN
SUM
Gibt nach der Rollup-Transformation einen Datenframe zurück.
Parameter | Beschreibung |
---|---|
rollupColumns |
Die durch Kommas getrennte Liste der Spalten, durch die das mehrdimensionale Rollup generiert wird. |
aggExpressions |
Die Aggregatfunktionsausdrücke, die für die Spalten ausgeführt werden sollen. Beispiel: |
Beispiel
Vor der Transformation:
+----------+-----+-------+------+---+
|department|group|region |salary|age|
+----------+-----+-------+------+---+
|Eng |A |local |1000 |10 |
|Art |B |foreign|2000 |11 |
|Sport |C |local |1500 |13 |
|Eng |A |foreign|800 |19 |
|Art |A |foreign|3000 |30 |
|Eng |E |foreign|1000 |21 |
|Art |D |local |1000 |32 |
|Sport |C |local |1000 |28 |
+----------+-----+-------+------+---+
Wenn rollupColumns
department, region
und aggExpressions
salary -> avg, age -> max
ist (das Durchschnittsgehalt und das Höchstalter berechnen), lautet das Rollup nach der Transformation:
+----------+-------+-----------------+--------+
|department|region |avg(salary) |max(age)|
+----------+-------+-----------------+--------+
|Eng |foreign|900.0 |21 |
|Sport |null |1250.0 |28 |
|Art |null |2000.0 |32 |
|Eng |null |933.3333333333334|21 |
|Art |foreign|2500.0 |30 |
|Eng |local |1000.0 |10 |
|null |null |1412.5 |32 |
|Sport |local |1250.0 |28 |
|Art |local |1000.0 |32 |
+----------+-------+-----------------+--------+
Führt Spark SQL-Abfragen für eingehende Daten aus, indem zuerst temporäre Views mit den angegebenen Tabellennamen erstellt werden.
Parameter | Beschreibung |
---|---|
SQL |
Die auszuführende SQL-Anweisung oder das auszuführende Skript. Beispiel: |
tableName |
Ein Tabellenname oder eine durch Komma getrennte Liste von Tabellennamen, mit denen Spark temporäre Tabellen erstellt. Beispiel: |
Generiert eine geschichtete Probe ohne Ersatz basierend auf der angegebenen Probenahmefraktion für jedes Stratum.
Gibt einen neuen Datenframe zurück, der die stratifizierte Probe darstellt.
Parameter | Beschreibung |
---|---|
strata_col |
Die Spalte, in der die Schichten definiert sind. |
fractions |
Die Stichprobenfraktion für jedes Stratum von Beispiel: Wenn kein Bruch angegeben wird, wird Null angenommen. |
sample_size |
Wenn |
seed |
Verwenden Sie eine beliebige Zufallszahl in |
Beispiel
Vor der Transformation:
+---+-----+
|key|value|
+---+-----+
| 1| 1|
| 1| 2|
| 2| 1|
| 2| 1|
| 2| 3|
| 3| 2|
| 3| 3|
+---+-----+
Wenn strata_col
key
und fractions
wie folgt lautet:
1 -> 1.0, 3 -> 0.5
Nach der Transformation:
+---+-----+
|key|value|
+---+-----+
| 1| 1|
| 1| 2|
| 3| 2|
+---+-----+
Berechnet die angegebenen Statistiken für numerische und Zeichenfolgenspalten.
Wenn keine Statistiken angegeben werden, werden alle folgenden Daten berechnet:
COUNT
MEAN
STDDEV
MIN
- ungefähre Quartile (Prozentile bei 25%, 50% und 75%)
MAX
Parameter | Beschreibung |
---|---|
statistics |
Eine durch Kommas getrennte Liste mit Statistiken. Unterstützte Werte sind:
Beispiel: |
Beispiel
Vor der Transformation:
+----------+------+-----------------+--------+
|department|gender|avg(salary) |max(age)|
+----------+------+-----------------+--------+
|Eng |female|900.0 |21 |
|Sport |null |1250.0 |28 |
|Art |null |2000.0 |32 |
|Eng |null |933.3333333333334|21 |
|Art |female|2500.0 |30 |
|Eng |male |1000.0 |10 |
|null |null |1412.5 |32 |
|Sport |male |1250.0 |28 |
|Art |male |1000.0 |32 |
+----------+------+-----------------+--------+
Angenommen, statistics
ist count, mean, stddev, min, 27%, 41%, 95%, max
.
Nach der Transformation:
+-------+----------+-----+------+----------------+----------------+
|summary|department|group|gender|salary |age |
+-------+----------+-----+------+----------------+----------------+
|count |8 |8 |8 |8 |8 |
|mean |null |null |null |1412.5 |20.5 |
|stddev |null |null |null |749.166203188585|8.76682056718072|
|min |Art |A |female|800 |10 |
|27% |null |null |null |1000 |13 |
|41% |null |null |null |1000 |19 |
|95% |null |null |null |3000 |32 |
|max |Sport |E |male |3000 |32 |
+-------+----------+-----+------+----------------+----------------+