网站开发需要团队吗,网站建设和维护试卷,wordpress插件数据库存在哪,网页设计教程免费网站业务中有这样一个场景#xff0c;我想实现的是将dataframe表table1中的字段b1与c1的内容使用下划线_连接起来列的名字为d1,比如比如学习_1,睡觉_2#xff0c;吃饭_3#xff0c;这是我的第一个需求#xff1b;随后我想保留的是dataframe表table1中的字段d1中的数据比如学习_… 业务中有这样一个场景我想实现的是将dataframe表table1中的字段b1与c1的内容使用下划线_连接起来列的名字为d1,比如比如学习_1,睡觉_2吃饭_3这是我的第一个需求随后我想保留的是dataframe表table1中的字段d1中的数据比如学习_1,睡觉_2吃饭_3中的数据中_前后的数据分别作为两列e1f1该怎么写这个spark代码我的想法是使用withclumn函数及split函数. sql来写的话就是使用subString函数来进行_匹配比如说
sql代码
SELECT SUBSTRING_INDEX(a1, _, 1) AS a2
FROM table1;
Spark代码
创建一个DataFrame名为table1将b1和c1字段的内容使用下划线连接起来并将新的列命名为d1
import org.apache.spark.sql.functions._ val table1 Seq( (学习, 1), (睡觉, 2), (吃饭, 3)
).toDF(b1, c1) val table1_d1 table1.withColumn(d1, concat($b1, _, $c1))使用split函数将d1字段中的数据拆分为两列e1和f1
val table1_d1_split table1_d1.withColumn(e1, split(col(d1), _)(0)) .withColumn(f1, split(col(d1), _)(1))table1_d1_split.show()table1_d1_split DataFrame将包含新的列e1和f1分别包含下划线前后的数据
------------------------------
| b1 | c1 | d1 | e1 | f1 |
------------------------------
| 学习 | 1 | 学习_1 | 学习 | 1 |
| 睡觉 | 2 | 睡觉_2 | 睡觉 | 2 |
| 吃饭 | 3 | 吃饭_3 | 吃饭 | 3 |
sql的就是不断地截取