scala - 在scala中将许多带有分隔符的字符串转换为数组
问题描述
我有一个这样的数据框:
userId someString varA varB
1 "example1" 0,2,5 1,2,9
2 "example2" 1,20,5 9,null,6
我想将数据转换为 VarA 和 varB 为字符串数组
userId someString varA varB
1 "example1" [0,2,5] [1,2,9]
2 "example2" [1,20,5] [9,null,6]
解决方案
它相当简单。您可以使用 sql 拆分功能。
import org.apache.spark.sql.functions.split
df.withColumn("varA", split($"varA",",")).withColumn("varB", split($"varB",",")).show()
输出
+------+----------+----------+------------+
|userId|someString| varA| varB|
+------+----------+----------+------------+
| 1| example1| [0, 2, 5]| [1, 2, 9]|
| 2| example2|[1, 20, 5]|[9, null, 6]|
+------+----------+----------+------------+
推荐阅读
- java - 执行失败:java.io.IOException:无法在打开的 jdk 9 中运行程序“native2ascii”
- multithreading - 在同一个 JVM 中同时运行 2 个 SpringApplication?
- android - 按下返回时默认启动器未启动
- java - 如何从 FTPClient 获取文件并转换为文件?
- java - 无法解析 onBindViewHolder 中的符号“textView”
- node.js - 在 nodejs 中使用 msnodesqlv8 创建连接池
- flutter - 你可以在颤振布局中插入原生布局吗?
- html - 图像上的文本叠加
- android - 无法在 Android 设备上运行 Flutter 项目:ProcessException: gradlew异常退出
- javascript - Bootstrap 4 计数器 - 最长持续时间?