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.

Cachen

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:

MEMORY_ONLY: Als deserialisierte Java-Objekte in der JVM speichern. Wenn der Speicher nicht ausreicht, werden einige RDD-Partitionen nicht gecacht, sondern nach Bedarf neu berechnet.

MEMORY_AND_DISK: Als deserialisierte Java-Objekte in der JVM speichern. Wenn der Speicher nicht ausreicht, werden einige RDD-Partitionen auf dem Datenträger gespeichert und bei Bedarf von der Festplatte gelesen.

MEMORY_ONLY_SER: Als deserialisierte Java-Objekte speichern.

MEMORY_AND_DISK_SER: Als deserialisierte Java-Objekte speichern. Partitionen, die nicht passen, werden auf dem Datenträger gespeichert.

DISK_ONLY: Speichern Sie die RDD-Partitionen nur auf dem Datenträger.

MEMORY_ONLY_2, MEMORY_AND_DISK_2, etc: Ähnlich wie bei anderen Ebenen, aber jede Partition wird auf zwei Clusterknoten repliziert.

Kreuztabellenanalyse

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, wobei col1 die erste Spalte und col2 die zweite Spalte vor der Transformation ist. Die erste Spalte jeder Zeile sind die eindeutigen Werte von col1.
  • 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 col1 bilden das erste Element jeder Zeile im zurückgegebenen Datenframe.

col2

Name der zweiten Spalte. Einschränkungen finden Sie im Hinweis nach dieser Tabelle.

Eindeutige Elemente aus co2 machen die Spaltennamen im zurückgegebenen Datenframe.

Hinweis

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  |
+----------+---+---+---+
Cube

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: salary -> avg, age -> max

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      |
+----------+-------+-----------------+--------+
Datengenerierung

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:

  • CSV
  • JSON
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  |
+---+---+---+
Deduplication

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  |
+---+---+
Häufige Artikel

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 0.0001).

Beispiel: 0.6 entspricht 60%. Das heißt, ein Element, das in mindestens 60% der Zeilen angezeigt wird, ist ein häufiges Element.

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]|
+------------------------+
Na Drop

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:

  • any: Löschen Sie die Zeile mit Nullwerten oder NaN-Werten in der angegebenen cols.
  • all: Löschen Sie die Zeile nur, wenn jeder angegebene Wert für cols Null oder NaN für diese Zeile ist.

Der Parameter how wird ignoriert, wenn der Parameter minNonNulls angegeben wird.

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 minNonNulls setzt den Parameter how außer Kraft.

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|
+---+--------+----+
Na Fill

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: name -> Tom bedeutet, dass Nullwerte in der Spalte name durch Tom ersetzt werden.

Ein Ersatzwert wird in den Datentyp der Spalte konvertiert. Ein Ersatzwert muss den folgenden Typ aufweisen:

  • Int
  • Long
  • Gleitkomma
  • Doppelt
  • String
  • Boolean

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 |
+---+-------+---+
Na Ersetzen

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 cols * ist, wird die Ersetzung auf alle Zeichenfolgen-, numerischen oder booleschen Spalten angewendet.

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: Alice -> Tom bedeutet, dass Alice durch Tom ersetzt wird.

Das Schlüssel-Ersatzwertpaar muss denselben Typ haben. Nur die folgenden Typen werden unterstützt:

  • Boolean
  • Doppelt
  • String

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  |
+----+-------+----+
Erneut partitionieren

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.

Aggregation

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: salary -> avg, age -> max

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      |
+----------+-------+-----------------+--------+
Spark SQL

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: select * from table1

tableName

Ein Tabellenname oder eine durch Komma getrennte Liste von Tabellennamen, mit denen Spark temporäre Tabellen erstellt.

Beispiel: table1, table2

Geschichtetes Abtasten

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 0.0 bis 1.0.

Beispiel: 0.1 gibt 10% der Zeilen zurück, und 1.0 gibt 100% der Zeilen zurück.

Wenn kein Bruch angegeben wird, wird Null angenommen.

sample_size

Wenn fractions nicht angegeben ist, geben Sie einen Teil des Datasets an, für das eine Stichprobe durchgeführt werden soll, von 0.0 bis 1.0.

seed

Verwenden Sie eine beliebige Zufallszahl in seed, um jedes Mal dieselbe Probe zurückzugeben, sodass das Ergebnis konsistent bleibt.

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|
+---+-----+
Zusammenfassung

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:

  • COUNT
  • MEAN
  • STDDEV
  • MIN
  • ein oder mehrere zufällige Näherungsperzentile, die als Prozentsatz angegeben sind (Beispiel: 75%)
  • MAX

Beispiel: count, mean, stddev, min, 27%, 41%, 95%, max

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              |
+-------+----------+-----+------+----------------+----------------+