Spark SQL 之 Temporary View

2023-11-17

Spark SQL 之 Temporary View

spark SQL的 temporary view 是支持原生SQL 的方式之一
spark SQL的 DataFrame 和 DataSet 均可以通过注册 temporary view 的方式来形成视图
案例一: 通过 DataFrame 的方式创建
val spark = SparkSession.builder().config(conf).getOrCreate();
spark.catalog.listTables().show();
val view = spark.createDataFrame(List(Person("Jason",34,"DBA"),Person("Tom",20,"Dev"))).createOrReplaceTempView("V_Person");
spark.catalog.listTables().show();
spark.catalog.listColumns("V_Person").show();

spark.close();
输出日志
+----+--------+-----------+---------+-----------+
|name|database|description|tableType|isTemporary|
+----+--------+-----------+---------+-----------+
+----+--------+-----------+---------+-----------+

+--------+--------+-----------+---------+-----------+
|    name|database|description|tableType|isTemporary|
+--------+--------+-----------+---------+-----------+
|v_person|    null|       null|TEMPORARY|       true|
+--------+--------+-----------+---------+-----------+

+----+-----------+--------+--------+-----------+--------+
|name|description|dataType|nullable|isPartition|isBucket|
+----+-----------+--------+--------+-----------+--------+
|name|       null|  string|    true|      false|   false|
| age|       null|     int|    true|      false|   false|
| job|       null|  string|    true|      false|   false|
+----+-----------+--------+--------+-----------+--------+
案例二: Spark sql 支持分组,分析函数等高级查询
spark.sql("SELECT * from V_Person").show();
spark.sql("SELECT count(1) from V_Person").show();
spark.sql("SELECT name,age,job,rank() over(partition by name order by age) as rk from V_Person").show();
输出日志
+-----+---+-------+
| name|age|    job|
+-----+---+-------+
|Jason| 34|BigData|
|  Tom| 20|    Dev|
|Jason| 28|    DBA|
+-----+---+-------+
+--------+
|count(1)|
+--------+
|       3|
+--------+
+-----+---+-------+---+
| name|age|    job| rk|
+-----+---+-------+---+
|Jason| 28|    DBA|  1|
|Jason| 34|BigData|  2|
|  Tom| 20|    Dev|  1|
+-----+---+-------+---+
案例三: 通过 DataSet 的方式创建
val spark = SparkSession.builder().config(conf).getOrCreate();
spark.catalog.listTables().show();
import spark.implicits._;
spark.createDataset(List(Person("Jason",34,"BigData"),Person("Tom",20,"Dev"),Person("Jason",28,"DBA"))).as[Person].createOrReplaceTempView("V_Person");
spark.catalog.listTables().show();
spark.catalog.listColumns("V_Person").show();
spark.sql("SELECT * from V_Person").show();
spark.sql("SELECT count(1) from V_Person").show();
spark.sql("SELECT name,age,job,rank() over(partition by name order by age) as rk from V_Person").show();


spark.close();
输出日志
+-----+---+-------+
| name|age|    job|
+-----+---+-------+
|Jason| 34|BigData|
|  Tom| 20|    Dev|
|Jason| 28|    DBA|
+-----+---+-------+
+--------+
|count(1)|
+--------+
|       3|
+--------+
+-----+---+-------+---+
| name|age|    job| rk|
+-----+---+-------+---+
|Jason| 28|    DBA|  1|
|Jason| 34|BigData|  2|
|  Tom| 20|    Dev|  1|
+-----+---+-------+---+
DataFrame 的结果集写入到文件中
val spark = SparkSession.builder().config(conf).getOrCreate();
import spark.implicits._;
spark.createDataset(List(Person("Jason",34,"BigData"),Person("Tom",20,"Dev"),Person("Jason",28,"DBA"))).as[Person].createOrReplaceTempView("V_Person");
val df = spark.sql("SELECT name,age,job,rank() over(partition by name order by age) as rk from V_Person").toDF();
df.write.format("CSV").option("sep","#").save("file:///d://result_jason.csv");
spark.close();
DataFrame 的结果集写入到内存中
 val spark = SparkSession.builder().config(conf).getOrCreate();
 import spark.implicits._;
 val ds = spark.createDataset(List(Person("Jason",34,"BigData"),Person("Tom",20,"Dev"),Person("Jason",28,"DBA"))).as[Person];
 ds.cache();
 ds.count();
 Thread.sleep(600000);
 spark.close();
控制台观察

http://10.70.64.37:4040/storage/

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spark SQL 之 Temporary View 的相关文章

  • spark性能优化调优指导性文件

    1 让我们看一下前面的核心参数设置 num executors 10 20 executor cores 1 2 executor memory 10 20 driver memory 20 spark default parallelis
  • Spark集群安装部署

    目录 一 环境准备 二 安装步骤 三 使用Standalone模式 四 使用Yarn模式 一 环境准备 由于Spark仅仅是一种计算机框架 不负责数据的存储和管理 因此 通常都会将Spark和Hadoop进行统一部署 由Hadoop中的HD
  • 分类算法之朴素贝叶斯

    1 朴素贝叶斯分类算法 朴素贝叶斯 Naive Bayes NB 算法是基于贝叶斯定理与特征条件独立假设的分类方法 该算法是有监督的学习算法 解决的是分类问题 是将一个未知样本分到几个预先已知类别的过程 朴素贝叶斯的思想就是根据某些个先验概
  • 任务长期不释放和占用单节点持续的cpu,导致hivesever2本身内存泄漏造成

    任务长期不释放和占用单节点持续的cpu 导致hivesever2本身内存泄漏造成 产生的原因在于 查询过于复杂或者数据量过大 当有复杂的查询或处理大量数据的请求时 HiveServer2可能会出现高负载 这可能涉及大量的计算 IO操作或涉及
  • windows下安装spark及hadoop

    windows下安装spark 1 安装jdk 2 安装scala 3 下载spark spark下载地址 3 1安装spark 将下载的文件解压到一个目录 注意目录不能有空格 比如说不能解压到C Program Files 作者解压到了这
  • Spark基础知识(个人总结)

    声明 1 本文为我的个人复习总结 并非那种从零基础开始普及知识 内容详细全面 言辞官方的文章 2 由于是个人总结 所以用最精简的话语来写文章 3 若有错误不当之处 请指出 一 Spark概述 Spark模块 Core SQL Streami
  • 11.Linux下Spark的安装配置以及spark-shell的启动和 Spark集群环境搭建

    本案例软件包 链接 https pan baidu com s 1zABhjj2umontXe2CYBW DQ 提取码 1123 若链接失效在下面评论 我会及时更新 目录 1 安装Spark 1 先用xftp将安装包传到home hadoo
  • spark-shell 加载本地文件报错 java.io.FileNotFoundException

    学习spark shell 时候发现一个问题 从本地文件加载数据生成RDD 报错 文件找不到 原因 spark shell 如果启动了集群模式 真正负责计算的executor会在 该executor所在的 worker节点上读取文件 并不是
  • 重新定义分析 - EventBridge 实时事件分析平台发布

    对于日志分析大家可能并不陌生 在分布式计算 大数据处理和 Spark 等开源分析框架的支持下 每天可以对潜在的数百万日志进行分析 事件分析则和日志分析是两个完全不同的领域 事件分析对实时性的要求更高 需要磨平事件领域中从半结构化到结构化的消
  • Spark DataFrame的Join操作和withColumn、withColumnRenamed方法实践案例(Scala Demo代码)

    import org apache log4j Level Logger import org apache spark sql SparkSession import org apache spark sql functions obje
  • Spark on Kubernetes 与 Spark on Yarn 不完全对比分析

    前言 Apache Spark 是目前应用最广泛的大数据分析计算工具之一 它擅长于批处理和实时流处理 并支持机器学习 人工智能 自然语言处理和数据分析应用 随着 Spark 越来越受欢迎 使用量越来越大 狭义上的 Hadoop MR 技术栈
  • java中使用spark如何将column多列合为一列

    接下来介绍几种使用spark将DataFrame中一行的多列合并到一列中 并且该列以不同的类型展示保存 1 建立dataset 自己需要连接的mongo库 private static String datasource 自己需要连接的mo
  • Hadoop完全分布式集群——Hadoop 配置

    前面已完成VMware虚拟机安装与配置 参考前一篇Hadoop完全分布式集群 VMware虚拟机安装与配置 夏雨和阳阳的博客 CSDN博客 下面将进行Hadoop 配置 一 slave1 slave2节点配置修改 slave1 slave2
  • 大数据相关常用软件下载地址集锦

    文章目录 每日一句正能量 前言 一 软件下载地址如下 二 文档地址如下 结语 每日一句正能量 生命中有一些人与我们擦肩了 却来不及遇见 遇见了 却来不及相识 相识了 却来不及熟悉 熟悉了 却还是要说再见 前言 由于大数据开发中经常需要用到Z
  • 深入理解 SQL 中的 Grouping Sets 语句

    前言 SQL 中 Group By 语句大家都很熟悉 根据指定的规则对数据进行分组 常常和聚合函数一起使用 比如 考虑有表 dealer 表中数据如下 id Int city String car model String quantity
  • 基于Spark的电商用户行为实时分析可视化系统(Flask-SocketIO)

    基于Spark的电商用户行为实时分析可视化系统 Flask SocketIO 项目简介 该项目已上线蓝桥课程 有需要的可凭邀请码 UB5mdLbl 学习哦 有优惠 课程地址 https www lanqiao cn courses 2629
  • spark-submit 报错 Initial job has not accepted any resources

    spark submit 报这样的错误 WARN scheduler TaskSchedulerImpl Initial job has not accepted any resources check your cluster UI to
  • 【硬刚大数据之学习路线篇】2021年从零到大数据专家的学习指南(全面升级版)

    欢迎关注博客主页 https blog csdn net u013411339 本文由 王知无 原创 首发于 CSDN博客 本文首发CSDN论坛 未经过官方和本人允许 严禁转载 欢迎点赞 收藏 留言 欢迎留言交流 声明 本篇博客在我之前发表
  • Spark Sql之dropDuplicates去重

    文章目录 算子介绍 示例 问题 解决 dropDuplicates和distinct 参考 算子介绍 dropDuplicates去重原则 按数据行的顺序保留每行数据出现的第一条 dropDuplicates 在Spark源码里面提供了以下
  • Spark SQL 项目:实现各区域热门商品前N统计

    一 需求1 1 需求简介这里的热门商品是从点击量的维度来看的 计算各个区域前三大热门商品 并备注上每个商品在主要城市中的分布比例 超过两个城市用其他显示 1 2 思路分析使用 sql 来完成 碰到复杂的需求 可以使用 udf 或 udaf查

随机推荐

  • 解决nginx报错:502 Bad Gateway以及504 Gateway Time-out问题

    wordpress及宝塔面板的基本环节 出现nginx错误 502 Bad Gateway 502 Bad Gateway以及504 Gateway Time out 504 Gateway Time out问题后的解决办法 更多分类文章
  • Intellij IDEA 自动生成 serialVersionUID

    Setting gt Inspections gt Serialization issues gt Serializable class without serialVersionUID 选上以后 在你的class中 Alt Enter就会
  • 网络安全行业的那些岗位

    网络安全行业 正在蓬勃发展 想要找网络安全岗位的 可以参考这篇文章 一 网络安全岗位 1 需要网络安全人员的企业 有三种企业招聘网络安全人员 乙方企业 甲方企业 国有企业 乙方企业是专门从事网络安全行业的企业 为客户提供安全产品 如防火墙
  • VMware vRealize Suite 8.8.0

    https pan baidu com s 16 VtEGgAMia8vLjMweHjGA 输入提示信息 j323 目录 VMware vRealize Suite 2019 8 8 0 百度网盘群共享 629229614 VMware爱好
  • 抖音,B站,小红书三大平台品牌投放特征与建议

    目前 小红书 抖音 B站作为品牌投放的主要平台 应该如何选择 一 抖音 平台特征 用户类型 抖音用户男女均衡 以19 30岁年龄阶段用户为主 一二线城市用户偏多 南方用户偏多 内容形式 表演剧情 vlog 颜值出境等丰富多样的短视频展示形式
  • 【雅思备考】写作表达积累

    小作文 Line graph amount of source of provided generating 用来描述来源 means of xxx generation 生产方式 over a period of over the per
  • 【重磅推荐】vue之web3.js以太坊开发总结与完整案例!

    一个完整的Vue web3 js 基于Metamask开发测试和正式上线 FirstContract sol文件 pragma solidity gt 0 4 24 lt 0 7 0 contract FirstContract strin
  • www外部异步加载(不卡)-适合大量加载

    www外部异步加载 不卡 适合大量加载
  • 第一二天作业-BGP MPLS + OSPF分流互备做法

    三 MPLS OSPF分流互备做法 MPLS OSPF分流互备做法配置命令 在中间骨干区域所有路由器先配置OSPF 然后在中间骨干区域所有路由器上配置MPLS 先创建mpls lsr id 在全局开启mpls 在全局开启mpls ldp 在
  • Linux操作系统的层次与组成

    1 Linux操作系统的层次结构 简单来说 Linux操作系统整体分为三层 1 硬件系统 包括CPU 内存 硬盘 网卡等 2 内核 这是操作系统的核心 负责管理硬件系统 同时为上层的应用程序提供操作接口 3 用户进程 表示计算机中运行的所有
  • java版微信和支付宝 支付的调起 和 回调

    写下项目中经常用到的微信和支付宝支付的拉起和回调的代码 1 支付参数和退款参数的封装 package co yixiang modules storePaymentOrder payment dto import lombok Data 支
  • tensorflow训练的模型,用C++ 部署,需要的看过来

    目录 1 先准备tensorflow 和 opencv 的lib 2 项目配置就不说了 3 试一下效果 4 代码 首先 感谢一下rockingdingo Issues rockingdingo tensorflow tutorial Git
  • 入行IT,为什么建议你学Java?

    计算机编程语言 顾名思义 是人用来跟计算机交流的编程语言 学好一门热门的计算机编程语言进入IT行业 获得较高的薪资是没有问题的 关键是热门的计算机编程语言超级多 计算机编程语言入门学什么好 当然是Java 想必很多朋友也很好奇 如此多的计算
  • 【Web方向】 PHP代码审计 CTF题目wp1

    目录 一 第一步 二 第二步 三 第三步 四 第四步 README 一 第一步 分析这道题 是要求使判断条件符合 然后输出flag 第一个if语句是不能直接给data赋值Welcome to CTF的 否则会这样无反应 查了下才知道这是因为
  • 四十一.枚举问题2.生理周期

    生理周期 解题思路 从d 1天开始 一直试到第21252天 对其中每个日期k 看是否满足 k p 23 0 k e 28 0 k i 33 0 include
  • 全自动高清录播服务器,全自动高清录播服务器 高清录播系统

    高清录播系统外观参数 规格参数是了解一台设备的基础 多家高清录播服务器对比之后发现虽有小异 却基本相同 那如何从外观参数上决出移动录播主机的是否高能呢 从外观看常规移动录播主机大小与功能成正比 其次 常规的移动录播主机虽配有高频 CPU 功
  • (Ext基础篇) 弹出窗口

    从外观上来讲 浏览器自带的alert confirm prompt等对话框并不好看 而且配置也不灵活 诸如按钮的添加 删除 以及修改按下按钮所触发的事件等操作都非常难以执行 而在EXT的msgbox里都能实现 而且外观相当漂亮 本节将详细介
  • Idea内存占用过高解决方法

    问题描述 大多数人都知道使用idea时 发现idea内存消耗比较严重 尤其开启了idea后 CPU占比可以直接飙升到100 这主要体现在刚启动的时候 系统的内存高达80 以上 甚至风扇呼呼作响 于是开始找各种解决方案 目前 就我个人电脑来说
  • Ruby on Rails微信开发1——开发模式的启用与接口配置

    参照博客 027 微信公众帐号开发教程第3篇 开发模式启用及接口配置 根据微信开发者文档 启用公共平台开发者模式并进行接口配置流程如下 加密 校验流程如下 1 将token timestamp nonce三个参数进行字典序排序 2 将三个参
  • Spark SQL 之 Temporary View

    Spark SQL 之 Temporary View spark SQL的 temporary view 是支持原生SQL 的方式之一 spark SQL的 DataFrame 和 DataSet 均可以通过注册 temporary vie