当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PySpark SQL Functions explode方法用法及代码示例


PySpark SQL 函数的 explode(~) 方法会展平 listdictionary 类型的指定列值。

参数

1.col | stringColumn

包含要展平的列表或字典的列。

返回值

新的 PySpark 列。

例子

展平列表

考虑以下PySpark DataFrame:

df = spark.createDataFrame([[['a','b']],[['d']]], ['vals'])
df.show()



+------+
|  vals|
+------+
|[a, b]|
|   [d]|
+------+

这里,vals 列包含列表。

要展平 vals 列中的列表,请使用 explode(~) 方法:

import pyspark.sql.functions as F
df.select(F.explode('vals').alias('exploded')).show()



+--------+
|exploded|
+--------+
|       a|
|       b|
|       d|
+--------+

在这里,我们使用 alias(~) 方法为 explode(~) 返回的列分配标签。

扁平化字典

考虑以下PySpark DataFrame:

df = spark.createDataFrame([[{'a':'b'}],[{'c':'d','e':'f'}]], ['vals'])
df.show()



+----------------+
|            vals|
+----------------+
|        {a -> b}|
|{e -> f, c -> d}|
+----------------+

这里,vals 列包含字典。

要展平 vals 列中的每个字典,请使用 explode(~) 方法:

df.select(F.explode('vals').alias('exploded_key', 'exploded_val')).show()



+------------+------------+
|exploded_key|exploded_val|
+------------+------------+
|           a|           b|
|           e|           f|
|           c|           d|
+------------+------------+

对于字典,explode(~) 方法返回两列 - 第一列包含所有键,第二列包含所有值。

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 PySpark SQL Functions | explode method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。