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


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


PySpark SQL 函数的 split(~) 方法返回新的 PySpark 数组列,其中包含基于指定分隔符的拆分标记。

参数

1.str | stringColumn

要在其中执行拆分的列。

2. pattern | string

用作分隔符的正则表达式。

3. limit | int | optional

  • 如果 limit > 0 ,则分割标记的结果数组将最多包含 limit 标记。

  • 如果limit <=0,那么我们执行的分割次数没有限制。

默认情况下,limit=-1

返回值

新的 PySpark 列。

例子

考虑以下PySpark DataFrame:

df = spark.createDataFrame([("A#A",), ("B##B",), ("#C#C#C#",), (None,)], ["x",])
df.show()



+-------+
|      x|
+-------+
|    A#A|
|   B##B|
|#C#C#C#|
|   null|
+-------+

在 PySpark 列中按分隔符分割字符串

要将 x 列中的字符串拆分为 "#" ,请使用 split(~) 方法:

df.select(F.split("x", "#")).show()



+---------------+
|split(x, #, -1)|
+---------------+
|         [A, A]|
|       [B, , B]|
|  [, C, C, C, ]|
|           null|
+---------------+

在此,请注意以下事项:

  • 第二个分隔符参数实际上被解析为正则表达式 - 我们稍后会看到一个例子。

  • 拆分 null 会产生 null

我们还可以使用可选参数 limit 指定要执行的最大分割数:

df.select(F.split("x", "#", 2)).show()



+--------------+
|split(x, #, 2)|
+--------------+
|        [A, A]|
|       [B, #B]|
|    [, C#C#C#]|
|          null|
+--------------+

这里,包含分割标记的数组的长度最多为 2 。这就是为什么我们仍然在其中看到分隔符子字符串 "#" 的原因。

在 PySpark 列中使用正则表达式拆分字符串

考虑以下PySpark DataFrame:

df = spark.createDataFrame([("A#A",), ("B@B",), ("C#@C",)], ["x",])
df.show()



+----+
|   x|
+----+
| A#A|
| B@B|
|C#@C|
+----+

要按字符 #@ 进行分割,我们可以使用正则表达式作为分隔符:

df.select(F.split("x", "[#@]")).show()



+------------------+
|split(x, [#@], -1)|
+------------------+
|            [A, A]|
|            [B, B]|
|          [C, , C]|
+------------------+

这里,正则表达式 [#@] 表示 #@

相关用法


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