pyspark.sql.functions.posexplode_outer ¶
-
pyspark.sql.functions.
posexplode_outer
( col : ColumnOrName ) → pyspark.sql.column.Column [source] ¶ -
为给定数组或映射中的每个元素返回一行,包含其位置。 与posexplode不同,如果数组/映射为空或为null,则生成行(null, null)。 使用默认列名 pos 表示位置, col 表示数组中的元素, key 和 value 表示映射中的元素,除非另有指定。
新增于版本 2.3.0。
在版本 3.4.0 中更改: 支持 Spark Connect。
示例
>>> df = spark.createDataFrame( ... [(1, ["foo", "bar"], {"x": 1.0}), (2, [], {}), (3, None, None)], ... ("id", "an_array", "a_map") ... ) >>> df.select("id", "an_array", posexplode_outer("a_map")).show() +---+----------+----+----+-----+ | id| an_array| pos| key|value| +---+----------+----+----+-----+ | 1|[foo, bar]| 0| x| 1.0| | 2| []|NULL|NULL| NULL| | 3| NULL|NULL|NULL| NULL| +---+----------+----+----+-----+ >>> df.select("id", "a_map", posexplode_outer("an_array")).show() +---+----------+----+----+ | id| a_map| pos| col| +---+----------+----+----+ | 1|{x -> 1.0}| 0| foo| | 1|{x -> 1.0}| 1| bar| | 2| {}|NULL|NULL| | 3| NULL|NULL|NULL| +---+----------+----+----+