【发布时间】:2021-08-12 04:15:40
【问题描述】:
这是我的数据框的样子:
p3.show(false)
CLASS_NAME ID CREATED_BY
/SC/ABC/123/abc 123 david
/SC/DEF/456/ghi 456 hannah
... more rows to follow
我想做的是:拆分CLASS_NAME 列并连接它的前两个字符串部分并形成一个新列:CLIENT_ID 并附加到数据框,所需的输出如下:
CLASS_NAME ID CREATED_BY CLIENT_ID
/SC/ABC/123/abc xyz david /SC/ABC
/SC/DEF/456/ghi jfk hannah /SC/DEF
... more rows to follow
到目前为止,我能够关注这个answer 并使用以下命令将它们拆分:
import org.apache.spark.sql.functions.split
import spark.implicits._
val p4 = p3.withColumn("CLIENT_ID", split($"CLASS_NAME", "\\/")).select(
$"CLIENT_ID".getItem(1).as("col1"),
$"CLIENT_ID".getItem(2).as("col2"),
$"CLIENT_ID".getItem(3).as("col3")
)
p4.show(false)
col1 col2 col3
SC ABC 123
SC DEF 456
... more rows to follow
但我还没有弄清楚如何 1. 连接两个字符串; 2. 将此新列附加到原始数据框。
任何想法将不胜感激!
【问题讨论】:
标签: scala dataframe apache-spark apache-zeppelin