Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Retourneert een DataFrame met een nieuwe rij voor elk element in de opgegeven matrix of kaart. De standaardkolomnaam is col voor elementen in een matrix en keyvalue voor elementen in een kaart. Als u verschillende kolomnamen wilt gebruiken, roept toDF() u het geretourneerde DataFrame aan.
Syntaxis
spark.tvf.explode(collection)
Parameterwaarden
| Kenmerk | Typologie | Description |
|---|---|---|
collection |
pyspark.sql.Column |
Doelkolom waaraan moet worden gewerkt. |
Retouren
pyspark.sql.DataFrame: Een DataFrame met een nieuwe rij voor elk element.
Voorbeelden
Voorbeeld 1: Een matrixkolom uitploten
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array(sf.lit(1), sf.lit(2), sf.lit(3))).show()
+---+
|col|
+---+
| 1|
| 2|
| 3|
+---+
Voorbeeld 2: Een kaartkolom uitploten
import pyspark.sql.functions as sf
spark.tvf.explode(
sf.create_map(sf.lit("a"), sf.lit("b"), sf.lit("c"), sf.lit("d"))
).show()
+---+-----+
|key|value|
+---+-----+
| a| b|
| c| d|
+---+-----+
Voorbeeld 3: Een matrix met structkolom uitploten
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array(
sf.named_struct(sf.lit("a"), sf.lit(1), sf.lit("b"), sf.lit(2)),
sf.named_struct(sf.lit("a"), sf.lit(3), sf.lit("b"), sf.lit(4))
)).select("col.*").show()
+---+---+
| a| b|
+---+---+
| 1| 2|
| 3| 4|
+---+---+
Voorbeeld 4: Een lege matrixkolom uitploten
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array()).show()
+---+
|col|
+---+
+---+
Voorbeeld 5: Een lege kaartkolom uitploten
import pyspark.sql.functions as sf
spark.tvf.explode(sf.create_map()).show()
+---+-----+
|key|value|
+---+-----+
+---+-----+
Voorbeeld 6: de standaardkolomnamen overschrijven
Omdat spark.tvf.explode een DataFrame wordt geretourneerd, kunt u toDF() de naam van de uitvoerkolommen wijzigen.
.alias() heeft geen effect op de uitgeplode kolommen.
import pyspark.sql.functions as sf
# Array: rename the single output column
spark.tvf.explode(sf.array(sf.lit(1), sf.lit(2), sf.lit(3))).toDF("number").show()
+------+
|number|
+------+
| 1|
| 2|
| 3|
+------+
# Map: rename both output columns
spark.tvf.explode(
sf.create_map(sf.lit("a"), sf.lit("b"), sf.lit("c"), sf.lit("d"))
).toDF("letter", "pair").show()
+------+----+
|letter|pair|
+------+----+
| a| b|
| c| d|
+------+----+