如何将字符串列转换为列表
Posted
技术标签:
【中文标题】如何将字符串列转换为列表【英文标题】:How to cast String column to List 【发布时间】:2018-05-22 21:50:03 【问题描述】:我的数据框如下所示:
df.schema 结果:
StructType(
StructField(a,StringType,true),
StructField(b,StringType,true),
StructField(c,IntegerType,true),
StructField(d,StringType,true)
)
我想将b
列转换为整数列表,将d
列转换为字符串列表。我该怎么做呢?
【问题讨论】:
【参考方案1】:剥离[]
并拆分,
:
import org.apache.spark.sql.functions._
val p = "^\\[(.*)\\]$"
df
.withColumn("b", split(regexp_extract(col("b"), p, 1), "\\s*,\\s*").cast("array<int>"))
.withColumn("d", split(regexp_extract(col("d"), p, 1), "\\s*,\\s*"))
【讨论】:
以上是关于如何将字符串列转换为列表的主要内容,如果未能解决你的问题,请参考以下文章