码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Spark与SQL之间NB的转换_withClumn,split及SubString


            业务中有这样一个场景,我想实现的是将dataframe表table1中的字段b1与c1的内容使用下划线_连接起来列的名字为d1,比如比如学习_1,睡觉_2,吃饭_3,这是我的第一个需求;随后我想保留的是dataframe表table1中的字段d1中的数据比如学习_1,睡觉_2,吃饭_3,中的数据中_前后的数据分别作为两列e1,f1,该怎么写这个spark代码,我的想法是使用withclumn函数及split函数.

            sql来写的话就是使用subString函数来进行_匹配,比如说

    sql代码

    1. SELECT SUBSTRING_INDEX(a1, '_', 1) AS a2
    2. FROM table1;

    Spark代码

    创建一个DataFrame,名为table1,将b1和c1字段的内容使用下划线连接起来,并将新的列命名为d1:

    1. import org.apache.spark.sql.functions._
    2. val table1 = Seq(
    3. ("学习", "1"),
    4. ("睡觉", "2"),
    5. ("吃饭", "3")
    6. ).toDF("b1", "c1")
    7. val table1_d1 = table1.withColumn("d1", concat($"b1", "_", $"c1"))

    使用split函数将d1字段中的数据拆分为两列e1和f1

    1. val table1_d1_split = table1_d1.withColumn("e1", split(col("d1"), "_")(0))
    2. .withColumn("f1", split(col("d1"), "_")(1))
    3. table1_d1_split.show()

    table1_d1_split DataFrame将包含新的列e1和f1,分别包含下划线前后的数据

    1. +------+------+------+------+------+
    2. | b1 | c1 | d1 | e1 | f1 |
    3. +------+------+------+------+------+
    4. | 学习 | 1 | 学习_1 | 学习 | 1 |
    5. | 睡觉 | 2 | 睡觉_2 | 睡觉 | 2 |
    6. | 吃饭 | 3 | 吃饭_3 | 吃饭 | 3 |

    sql的就是不断地截取

  • 相关阅读:
    盘点Vue2和Vue3的10种组件通信方式(值得收藏)
    YOLO算法(You Only Look Once)系列讲解与实现(待完善)
    基于JAVA科技专业师生沟通平台计算机毕业设计源码+系统+mysql数据库+lw文档+部署
    Vue业务组件封装(二)Form表单
    Allegro DVT与SiMa.ai携手优化嵌入式边缘应用的能效
    Git常用命令
    Go 复合类型之切片类型介绍
    Linux端口的开启
    XShell无法链接(腾讯云)服务器
    眼科动态图像处理系统使用说明(2023-8-11 ccc)
  • 原文地址:https://blog.csdn.net/qq_52128187/article/details/134453113
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号