我的数据框如下所示:
df.schema导致:
StructType(
StructField(a,StringType,true),
StructField(b,StringType,true),
StructField(c,IntegerType,true),
StructField(d,StringType,true)
)
我想将列b
转换为Ints列,将列d
转换为字符串列表。我该怎么做呢?
答案 0 :(得分:0)
剥离[]
并拆分,
:
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*"))