當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。