我想使用python/pyspark创建一个基于字符串列的新列,如果存在,则在末尾使用分隔符(";")和删除(“;”):
输入:
"511;520;611;"
"322;620"
"3;321;"
"334;344"预期输出:
+Column | +new column
"511;520;611;" | [511,520,611]
"322;620" | [322,620]
"3;321;" | [3,321]
"334;344" | [334,344]尝试:
data = data.withColumn(
"newcolumn",
split(col("column"), ";"))但是我在数组的末尾得到了一个空字符串,如果存在的话,我想把它删除
+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]发布于 2021-09-30 10:18:04
对于spark版本的>= 2.4,使用带有!= ''条件的filter函数过滤出数组中的空字符串
from pyspark.sql.functions import expr
data = data.withColumn("newcolumn", expr("filter(split(column, ';'), x -> x != '')"))https://stackoverflow.com/questions/69390093
复制相似问题