scala - 如何将字符串列转换为列表
问题描述
我的数据框如下所示:
df.schema 导致:
StructType(
StructField(a,StringType,true),
StructField(b,StringType,true),
StructField(c,IntegerType,true),
StructField(d,StringType,true)
)
我想将列b
转换为整数列表,将列d
转换为字符串列表。我该怎么做呢?
解决方案
剥离[]
和分割,
:
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*"))
推荐阅读
- javascript - 在 MongoDB 中进行 $lookup 时访问另一个对象数组中的值
- reactjs - 如何创建像 Bootstrap 手风琴这样的组件?
- flutter - Flutter web中鼠标滚动事件的PageView animateToPage
- html - CSS以适合顶栏下方的侧边栏
- javascript - 如何在 react 中为三个 js 设置导入(包括 Obj 加载器)?
- scikit-learn - sklearn.model_selection中GridSearchCV的“cv_results_”属性中split0_test_score的数学含义是什么
- c++ - 有没有办法用 Hana 来表达函数应用运算符/函数?
- spring-boot - 任何对象上的 Spring JPA ManytoMany 循环引用
- jitsi - Jitsi 外部 API 配置
- c# - 如何使用 KeyValuePair 从 List 中获取 ListDictionary 来翻译一些字符串?