Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Verilen dizideki veya eşlemedeki her öğe için yeni bir satır içeren bir DataFrame döndürür. Varsayılan sütun adı, col dizideki öğeler ve keyvalue bir eşlemedeki öğeler içindir. Farklı sütun adları kullanmak için döndürülen DataFrame'i çağırın toDF() .
Sözdizimi
spark.tvf.explode(collection)
Parametreler
| Parametre | Türü | Description |
|---|---|---|
collection |
pyspark.sql.Column |
Üzerinde çalışacak hedef sütun. |
İade
pyspark.sql.DataFrame: Her öğe için yeni bir satır içeren bir DataFrame.
Örnekler
Örnek 1: Dizi sütununu hızlandırma
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|
+---+
Örnek 2: Harita sütununu büyütme
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|
+---+-----+
Örnek 3: Yapı sütunu dizisinin patlatılması
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|
+---+---+
Örnek 4: Boş bir dizi sütununu boşaltma
import pyspark.sql.functions as sf
spark.tvf.explode(sf.array()).show()
+---+
|col|
+---+
+---+
Örnek 5: Boş bir harita sütununu boşaltma
import pyspark.sql.functions as sf
spark.tvf.explode(sf.create_map()).show()
+---+-----+
|key|value|
+---+-----+
+---+-----+
Örnek 6: Varsayılan sütun adlarını geçersiz kılma
DataFrame spark.tvf.explode döndürdüğünden çıkış sütunlarını yeniden adlandırmak için kullanın toDF() .
.alias() , patlayan sütunlar üzerinde hiçbir etkisi yoktur.
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|
+------+----+