首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用;拆分数组,如果存在则在字符串末尾删除,以获取数组

问使用;拆分数组,如果存在则在字符串末尾删除,以获取数组
EN

Stack Overflow用户
提问于 2021-09-30 09:52:46
回答 1查看 61关注 0票数 0

我想使用python/pyspark创建一个基于字符串列的新列,如果存在,则在末尾使用分隔符(";")和删除(“;”):

输入:

代码语言:javascript
复制
"511;520;611;"
"322;620"  
"3;321;"
"334;344"

预期输出:

代码语言:javascript
复制
+Column        | +new column
"511;520;611;" | [511,520,611]
"322;620"      | [322,620]
"3;321;"       | [3,321]
"334;344"      | [334,344]

尝试:

代码语言:javascript
复制
data = data.withColumn(
"newcolumn",
split(col("column"), ";"))

但是我在数组的末尾得到了一个空字符串,如果存在的话,我想把它删除

代码语言:javascript
复制
+Column        | +new column
"511;520;611;" | [511,520,611,empty string]
"322;620"      | [322,620]
"3;321;"       | [3,321,empty string]
"334;344"      | [334;344]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-30 10:18:04

对于spark版本的>= 2.4,使用带有!= ''条件的filter函数过滤出数组中的空字符串

代码语言:javascript
复制
from pyspark.sql.functions import expr

data = data.withColumn("newcolumn", expr("filter(split(column, ';'), x -> x != '')"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69390093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档