围绕给定模式的匹配项拆分 str。
有关相应的 Databricks SQL 函数,请参阅 split 函数。
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.split(str=<str>, pattern=<pattern>, limit=<limit>)
参数
| 参数 | 类型 | Description |
|---|---|---|
str |
pyspark.sql.Column 或 str |
要拆分的字符串表达式 |
pattern |
pyspark.sql.Column 或 literal string |
表示正则表达式的字符串。 正则表达式字符串应该是 Java 正则表达式。 接受为正则表达式表示形式,以实现向后兼容性。 除了 int, limit 现在还接受列名和列名。 |
limit |
pyspark.sql.Column 或 str 或 int |
一个整数,用于控制应用的次数 pattern 。 _ limit > 0:生成的数组的长度不会超过 limit,生成的数组的最后一个条目将包含超出上次匹配模式的所有输入。 _ limit <= 0: pattern 将尽可能多地应用,生成的数组可以是任何大小。 |
退货
pyspark.sql.Column:分隔字符串的数组。
例子
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('oneAtwoBthreeC',)], ['s',])
df.select('*', dbf.split(df.s, '[ABC]')).show()
df.select('*', dbf.split(df.s, '[ABC]', 2)).show()
df.select('*', dbf.split('s', '[ABC]', -2)).show()
df = spark.createDataFrame([
('oneAtwoBthreeC', '[ABC]', 2),
('1A2B3C', '[1-9]+', 1),
('aa2bb3cc4', '[1-9]+', -1)], ['s', 'p', 'l'])
df.select('*', dbf.split(df.s, df.p)).show()
df.select(dbf.split('s', df.p, 'l')).show()