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


Python PySpark SQL Functions concat方法用法及代碼示例


PySpark SQL 函數的 concat(~) 方法連接字符串和數組列。

參數

1.*cols | stringColumn

要連接的列。

返回值

PySpark 列 (pyspark.sql.column.Column)。

例子

在 PySpark 中連接基於字符串的列

考慮以下PySpark DataFrame:

df = spark.createDataFrame([["Alex", "Wong"], ["Bob", "Marley"]], ["fname", "lname"])
df.show()



+-----+------+
|fname| lname|
+-----+------+
| Alex|  Wong|
|  Bob|Marley|
+-----+------+

連接 fnamelname

import pyspark.sql.functions as F
df.select(F.concat("fname", "lname")).show()



+--------------------+
|concat(fname, lname)|
+--------------------+
|            AlexWong|
|           BobMarley|
+--------------------+

如果您想在兩列之間包含空格,可以使用 F.lit(" ") ,如下所示:

import pyspark.sql.functions as F
df.select(F.concat("fname", F.lit(" "), "lname")).show()



+-----------------------+
|concat(fname,  , lname)|
+-----------------------+
|              Alex Wong|
|             Bob Marley|
+-----------------------+

F.lit(" ") 是一個 Column 對象,其值由 " " 填充。

您還可以向返回的列添加別名,如下所示:

df.select(F.concat("fname", "lname").alias("COMBINED NAME")).show()



+-------------+
|COMBINED NAME|
+-------------+
|     AlexWong|
|    BobMarley|
+-------------+

您還可以傳入 Column 對象而不是列標簽:

df.select(F.concat(df.fname, F.col("lname"))).show()



+--------------------+
|concat(fname, lname)|
+--------------------+
|            AlexWong|
|           BobMarley|
+--------------------+

在 PySpark 中連接基於數組的列

考慮以下PySpark DataFrame:

df = spark.createDataFrame([[ [4,5], [6]], [ [7], [8,9] ]], ["A", "B"])
df.show()



+------+------+
|     A|     B|
+------+------+
|[4, 5]|   [6]|
|   [7]|[8, 9]|
+------+------+

連接每列的數組:

import pyspark.sql.functions as F
df.select(F.concat("A", "B")).show()



+------------+
|concat(A, B)|
+------------+
|   [4, 5, 6]|
|   [7, 8, 9]|
+------------+

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 PySpark SQL Functions | concat method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。