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


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