回傳一個 DataFrame,其中包含在指定陣列或映射表中每個元素對應位置的新列。 與 explode 不同的是,如果陣列/映射為 null 或為空,則產生 null。 除非另有說明,否則陣列中的元素會使用預設的欄位名稱col,映射keyvalue中的元素則使用和。
語法
spark.tvf.explode_outer(collection)
參數
| 參數 | 類型 | Description |
|---|---|---|
collection |
pyspark.sql.Column |
要處理的目標欄。 |
退貨
pyspark.sql.DataFrame:一個為每個元素新增一列的資料框架,若集合為空或為空,則為空。
範例
import pyspark.sql.functions as sf
spark.tvf.explode_outer(sf.array(sf.lit("foo"), sf.lit("bar"))).show()
+---+
|col|
+---+
|foo|
|bar|
+---+
import pyspark.sql.functions as sf
spark.tvf.explode_outer(sf.array()).show()
+----+
| col|
+----+
|NULL|
+----+
import pyspark.sql.functions as sf
spark.tvf.explode_outer(sf.create_map(sf.lit("x"), sf.lit(1.0))).show()
+---+-----+
|key|value|
+---+-----+
| x| 1.0|
+---+-----+
import pyspark.sql.functions as sf
spark.tvf.explode_outer(sf.create_map()).show()
+----+-----+
| key|value|
+----+-----+
|NULL| NULL|
+----+-----+