package com.ws.sparksql
import org.apache.spark.sql.{DataFrame, Dataset, SparkSession}
/*** sparksql join : 与mysql 的join 一样用法*/
object JoinDemo {def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appName("JoinDemo").master("local[*]").getOrCreate()import spark.implicits._val subjectData: Dataset[String] = spark.createDataset(List("1,math,98", "2,math,60", "3,math,50"))val sb: Dataset[(Int, String, Int)] = subjectData.map(l => {val fields = l.split(",")val id = fields(0).toIntval subject = fields(1)val score = fields(2).toInt(id, subject, score)})val studentData: Dataset[String] = spark.createDataset(List("1,大宝", "2,渣渣", "3,55"))val student: Dataset[(Int, String)] = studentData.map(l => {val fields = l.split(",")val id = fields(0).toIntval name = fields(1)(id, name)})val stDataFrame: DataFrame = student.toDF("sid", "name")val sbDataFrame = sb.toDF("uid", "math", "score")//dataFrame方式//val result = sbDataFrame.join(stDataFrame, $"uid" === $"sid", "right")//spark sql方式sbDataFrame.createTempView("t_sb")stDataFrame.createTempView("t_student")val result = spark.sql(" select t.* , s.name from t_sb t join t_student s on  t.uid = s.sid")result.show()spark.stop()}
}

结果 :

+---+----+-----+----+
|uid|math|score|name|
+---+----+-----+----+
|  1|math|   98|  大宝|
|  2|math|   60|  渣渣|
|  3|math|   50|  55|
+---+----+-----+----+

sparksql join用法相关推荐

  1. sparksql agg用法

    sparkSql agg用法,样例代码 def main(args: Array[String]): Unit = {val spark = SparkSession.builder().appNam ...

  2. linux线程join的用法,join用法

    Join用法 - a 1显示第一个文件的不匹配行,- a 2为从第二个文件中显示不匹配行. n.m    n为文件号,m为域号.1 . 3表示只显示文件1第三域,每个n,m必须用逗号分隔,如1 . 3 ...

  3. Java线程中wait、await、sleep、yield、join用法总结

    文章目录 一.wait().notify().notifyAll()用法 二.await().signal().signalAll()用法 三 .yield().join()用法 四.wait().a ...

  4. boost::fusion::join用法的测试程序

    boost::fusion::join用法的测试程序 实现功能 C++实现代码 实现功能 boost::fusion::join用法的测试程序 C++实现代码 #include <boost/d ...

  5. SQL中的left outer join,inner join,right outer join用法 (左右内连接)

    SQL语句中的left outer join,inner join,right outer join用法 left outer join=left join ,   right outer join= ...

  6. wait放弃对象锁_Java线程中wait、await、sleep、yield、join用法总结

    一.wait().notify().notifyAll()用法 obj.wait()/obj.wait(long timeout)是Object中的方法,当线程调用wait()方法,当前线程释放对象锁 ...

  7. oracle中何时会用到join,Oracle中join用法的演示

    以下的文章主要介绍的是Oracle中join用法,如果你是其方面的新手,对Oracle中oin的实际用法很感兴趣,但是却找不到一些资料去对其进行更深入的了解的话,你不妨浏览以下的文章对其进行了解. O ...

  8. thinkphp中join用法

    JOIN方法也是连贯操作方法之一,用于根据两个或多个表中的列之间的关系,从这些表中查询数据. 附上项目中的left join用法的代码: 1 $data = M("groups g" ...

  9. Oracle的join默认为,oracle join用法

    文章分类:数据库 join用法 条件连接(join) T1 { [INNER] | { LEFT | RIGHT | FULL } [OUTER] } JOIN T2 ON boolean_expre ...

最新文章

  1. oracle 状态unknown,Oracle RAC 一个节点的instance资源状态为unknown
  2. python安装pyquery失败
  3. SSO之CAS单点登录详细搭建
  4. 在RHEL5下实现RAID5磁盘阵列
  5. Maximum Flow(2017 ACM-ICPC 亚洲区(西安赛区)网络赛 E)
  6. 像孩童一样欣喜的看着自己的成长
  7. 「CSDN 2020年度博客之星」总榜单在此揭晓
  8. php 0补全,PHP给数字或字符串补零0或自动补全其他符号
  9. lodop直接打印怎么去除水印_手机视频有水印怎么办?一招教你轻松去除,不学真是可惜了...
  10. python修改字体无效_matplotlib中修改默认字体
  11. cass小插件集合_CASS插件合集 - 下载 - 搜珍网
  12. 算法工程师面试常见问题
  13. 矩阵基变换和坐标变换
  14. LVGL——lv_gauge 仪表盘
  15. C#入门学习-----图书阅读器(WPF 用户控件技术)
  16. 第一部分 数理逻辑 第三章 命题逻辑的推理理论
  17. iOS 多线程使用示例
  18. MySQL开启ssl证书
  19. Office使用的窍门和小提示
  20. ARM Linux设备树

热门文章

  1. 同时删除多个 Word 中间几页
  2. 详解 matplotlib.pyplot ,Python 初学者真能看懂
  3. 笔记本电脑硬盘不见了_机械革命笔记本电脑文件不见了解决方案
  4. http缓存详解(强缓存、协商缓存相关字段以及缓存流程解析)
  5. Vue的过滤器(filter)
  6. sp工具中最疼的是_阴阳师:SP缚骨清姬技能建模解读,另有伴生皮肤黛色寒青...
  7. 四、六级常用翻译短语(含两篇翻译预测)
  8. 什么是aop面向切面
  9. 如何添加共享打印机?
  10. 林地府邸java什么版本_《我的世界》林地府邸究竟有什么秘密?这4个屋子千万不能错过!...