如何将字符串列转换为列表

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*"))

【讨论】:

以上是关于如何将字符串列转换为列表的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Laravel 迁移将字符串列类型转换为整数?

如何将JSON字符串列行转换为可查询表

将具有日期和纪元格式值的字符串列转换为 postgresql/Tableau prep 中的日期列

将字符串列转换为日期时间格式

将日期时间列转换为字符串列

如何在pyspark中将字符串列转换为ArrayType