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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。