【大数据】0001---使用SparkSQL关联两个表求和取前几行
场景:
有两个表,表可以是文本或Json数据,结构化后分别是Table1(A,B,C)和Table2(C、D、E),两个表通过C关联,要求求出D+E之和,并以(A、B、D+E)三列返回
解答:
思路:SparkSQL支持读取Json创建表,同时创建的表可以做联合查询,类似传统Sql语句进行关联查询和统计分析
代码:
package studyimport org.apache.spark.SparkContext import org.apache.spark.sql.SparkSessionobject TestDataFrame2{def main(args:Array[String]):Unit={import org.apache.spark.sql.SparkSessionval spark = SparkSession.builder().master("local[*]").appName("Spark SQL basic example").config("spark.some.config.option", "some-value").getOrCreate()spark.sql("""create table table1 using org.apache.spark.sql.json options(path "F://0002_BigData//Soft//comoceanspark//src//resources//Table1.json")""") spark.sql("""create table table2 using org.apache.spark.sql.json options(path "F://0002_BigData//Soft//comoceanspark//src//resources//Table2.json")""") spark.sql("show tables").show()spark.sql("select A,B,(D+E) as DE from table1 inner join table2 on table1.C = table2.C order by DE desc limit 5").show()} }
Table1.json:
{"A":"A1", "B":30, "C":1} {"A":"A2", "B":31, "C":2} {"A":"A3", "B":32, "C":3} {"A":"A4", "B":33, "C":4} {"A":"A5", "B":34, "C":5} {"A":"A6", "B":35, "C":6} {"A":"A7", "B":36, "C":7} {"A":"A8", "B":37, "C":8} {"A":"A9", "B":38, "C":9}
Table2.json:
{"C":1, "D":1, "E":1} {"C":2, "D":2, "E":2} {"C":3, "D":3, "E":3} {"C":4, "D":4, "E":4} {"C":5, "D":5, "E":5} {"C":6, "D":6, "E":6} {"C":7, "D":7, "E":7} {"C":8, "D":8, "E":8} {"C":9, "D":9, "E":9}
结果:
表显示
计算结果显示:
转载于:https://www.cnblogs.com/defineconst/p/11553271.html
【大数据】0001---使用SparkSQL关联两个表求和取前几行相关推荐
- 大数据之路读书笔记-11事实表设计
大数据之路读书笔记-11事实表设计 文章目录 大数据之路读书笔记-11事实表设计 11.1 事实表基础 11.1.1 事实表特性 11.1.2 事实表设计原则 11.1.3 事实表设计方法 11.2 ...
- 大数据原始数据从那些途径获取?200个国内外经济金融行研咨询数据网站大全...
大数据原始数据从那些途径获取?200个国内外经济金融行研咨询数据网站大全 大数据资料搜集是个相当繁琐与累的工作,也是投资入门的基本,良好的信息资料搜集能力有利于我们快速了解投资主体的基本情况,为后续的 ...
- **龙战于野大数据MR原理启动hive查询表分区,表结构,完整流程*
龙战于野大数据MR原理启动hive查询表分区,表结构,完整流程** 如果使用的是mr(原生mapreduce) SET mapreduce.job.queuename=etl;显示表分区: 查看分区 ...
- 大数据技术之SparkSQL(超级详细)
第1章 Spark SQL概述 1.1什么是Spark SQL Spark SQL是Spark用来处理结构化数据的一个模块,它提供了2个编程抽象:DataFrame和DataSet,并且作为分布式SQ ...
- 【大数据开发】SparkSQL——RDD、DataFrame、DataSet相互转换、DSL常用方法、SQL风格语法、Spark读写操作、获取Column对象的方式
take,takeAsList是Action操作 limit⽅法获取指定DataFrame的前n⾏记录,得到⼀个新的DataFrame对象.和take与head不同的是,limit⽅法不是Action ...
- 大数据与数据分析的关联,主要应用在哪些领域?
3G时代的文字和图片.4G时代的图片与视频.5G时代的短视频和直播,多样化信息给人们日常生活带来的,除了精神上的愉悦和感官上的刺激之外,也带来了数据的疯狂增长. 从2009年"大数据&quo ...
- powerdesigner 怎么关联两张表_【PL/SQL数据库】 三种关联机制 - 执行计划
看完这章你会学习到以下内容: 1. 三种关联分别是什么? 2. 什么时候那个适合用哪个?(总结) 一共有三种关联机制: Nest Loop 嵌套循环 (大小表) Sort Merge 排序合并 (添加 ...
- 大数据项目开发hadoop集群搭建 python爬取前程无忧招聘网信息以及进行数据分析和数据可视化
大数据项目开发实训报告 一.Hadoop环境搭建 1: jdk的安装 1):在linux系统下的opt目录下创建software 和 module 两个目录 2):利用filezilla工具将 jdk ...
- 大数据学习笔记35:Hive - 内部表与外部表
文章目录 一.内部表 1.什么是内部表 2.创建与操作内部表 (1)创建park数据库 (2)在park数据库里创建student表 (3)在student表插入一条记录 (4)通过HDFS Expl ...
最新文章
- R语言ggplot2可视化:可视化分组的小提琴图(violin plot)并在分组小提琴内部嵌入箱图(box plot)
- 【毕设进行时-工业大数据,数据挖掘】Java GUI完善,左对齐
- anaconda安装tensorflow gpu_安装Tensorflow-gpu的来龙去脉
- 【uniapp】3d轮播图/堆叠轮播图/层叠轮播图
- Redis操作Hash相关API
- 关于 epoch、 iteration和batchsize的区别
- java中的gui_java gui快速入门教程
- “约见”面试官系列之常见面试题之第七十七篇之vuex中mutation和action的详细区别 (建议收藏)
- 小白学JAVA,与你们感同身受,JAVA---day5:关于多态的理解和分析。鲁迅的一句话:总之岁月漫长,然而值得等待。
- windows进入mysql
- C# 对垒 VB.NET C#不行了?
- web视图层:JSP
- 一步一步学Silverlight 2系列(8):使用样式封装控件观感
- Unity面试题精选(4)
- Django实战1-权限管理功能实现-10:用户管理
- Cleaning Bad Data in R R语言数据清理教程 Lynda课程中文字幕
- 西南科技大学 SWUST OJ系统942: 逆置顺序表
- 采用Turbo编码的图像传输试验(AWAG信道,matlab实现)分别验证了不同交织器类型,交织深度对turbo码性能的影响
- python tts 离线 linux_ubuntu16.04安装科大讯飞Linux SDK实现离线语音合成(TTS)
- android 智能电视 电视盒子 安卓嵌入式硬件LAN压力测试
热门文章
- 大数据分析五步法流程顺序
- 新答尔科撒顿工业机器人_工业机器人谐波轴承使用寿命是多长?国产迎来新突破,大大延长...
- php cms 公众号,thinkwechat
- java url类下载_Java根据url下载图片或文件的工具类-Fun言
- python能处理图片吗_python的Image和skimage处理图片
- python密码编程_Python密码学编程
- c 语言与数据库技术基础教程答案,2016计算机三级《数据库技术》备考习题与答案...
- Python爬虫之(五)Cookie和URLError
- Python爬虫之(四)urllib库的高级用法
- JAVA的包装类 【转】