sparksql简介

什么是sparksql

sparksql是一个用来处理结构话数据的spark模块,它允许开发者便捷地使用sql语句的方式来处理数据;它是用来处理大规模结构化数据的分布式计算引擎,其他分布式计算引擎比较火的还有hive,map-reduce方式。

sparksql的特点

  1. 融合性 – 无缝集成在代码里,随时使用sql语句
  2. 统一数据访问方式 – 一套标准api访问多种数据源
  3. 兼容hive – 可以使用sparksql直接计算并生成hive数据表,这对老的hive数据仓的兼容还是比较好的
  4. 标准化连接,支持jdbc/odbc连接,方便和各种数据库进行数据交互

sparksql与hive的异同对比

  1. 都是分布式计算引擎,都广泛用于大规模结构化数据计算,但spark性能更佳
  2. sparksql底层允许sparkRDD,hive底层允许map-reduce, sparksql是基于内存迭代的,hive是基于磁盘迭代的,这也是他们性能差异的主要来源之一
  3. sparksql不支持元数据管理,hive有metastore管理元数据,但spark可以和hive集成,从而使用hive的元数据管理
  4. 二者都可以允许到yarn之上
  5. hive只支持sql开发,spark支持代码+sql融合开发

sparksql数据抽像与pandas、sparkcore对比

  1. pandas中,数据抽象单元是DataFrame,是一个二维表结构,用于单机/本地数据集合的处理
  2. sparkcore中,数据抽象是RDD,用于分布式数据集合,没有固定数据结构,可存储任意数据
  3. sparksql中,数据抽象是DataFrame,是一个二维表结构,与pandas不同的在于可以用于处理分布式数据集合
    实际上,sparksql有三种数据抽象,一个是早期的SchemaRDD抽象,现在已经废弃了,一个是DataSet数据抽象,主要是为scala/java提供的泛型数据对象支持,另外就是DataFrame,可支持python/java/scala。
    在spark中,RDD和sparksql是两个很常见的数据抽象形式,怎么理解这两种数据抽象,我们可以看下图:
    在这里插入图片描述
  • RDD是可以存储任意结构数据了,上面只是假设数据对象是一个二维数据的结构,我们也可以用字符串(如"id,name,age")、类(三个成员)等存储,RDD存储对象本身,但dataframe不一样,只能按二维表存储;
  • RDD和DataFrame都可以进行分区处理,dataframe更适合用sql处理;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2870299.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

sqllab第二十七A关通关笔记

知识点: 双引号闭合union select 大小写绕过 Union Select这里不能进行错误注入,无回显 经过测试发现这是一个双引号闭合 构造payload:id1"%09and%091"1 页面成功回显 构造payload:id0"%09uNion%09SElect%091,2,3%09"1 页面成功…

简单高效多语言请求的主流电商平台API数据采集实时接口如何采集数据

电商数据采集API功能概述: 1. 实时采集:1688采集能够自动从阿里巴巴和1688网站抓取商品信息,无需人工手动搜索,节省大量时间。 2. 商品筛选:用户可以根据需求设置采集条件,如价格、销量、信用度等&#x…

JDBC编程(Mysql)

目录 1.什么是jdbc 2.使用 2.1下载mysql数据库驱动 2.2导入项目 2.3编写代码 2.3.1数据源 2.3.2和数据库服务器建立连接 2.3.3构建一个操作数据库的sql语句 2.3.4执行sql 2.3.5释放前面创建的各种资源 2.3.6运行java程序 2.4其他操作 2.4.1修改操作 2.4.2删除操作…

基于Springboot和Redis实现的快递代取系统

1.项目简介 本项目基于springboot框架开发而成,前端采用bootstrap和layer框架开发,系统功能完整,界面简洁大方,比较适合做毕业设计使用。 本项目主要实现了代取快递的信息管理功能,使用角色有三类:一是客…

基于Springboot和Redis实现的在线选课系统

1.项目简介 1.1 介绍 毕业设计真的就是demo吗?作为工作前的最后一个校园项目,毕业设计应当尽可能的贴近企业实战,业务不必很复杂,但要做到麻雀虽小五脏俱全。本期学长跟大家一起分享如何开发一个在线选课系统,需求也…

中国联通智慧矿山行业解决方案

中国联通国际公司以其全球化服务能力,针对矿山行业的特殊挑战提供了定制化的解决方案,尤其是在网络通信基础设施搭建和智能应用部署方面,助力企业克服远程作业环境下的通信难题,并有效拓展海外市场。 对于矿山类企业而言&#xf…

如何引入ElementUI组件库,快速上手Element

前言:在上篇文章中分享了如何快速上手Vue框架项目,本篇文章则介绍的是Element的使用,通过本篇文章的分享,我们就可以将Vue和Element结合使用,快速构建出精美的网页界面 目录 一.Element和ElementUI 二.如何引入Eleme…

算法---滑动窗口练习-6(找到字符串中所有字母异位词)

找到字符串中所有字母异位词 1. 题目解析2. 讲解算法原理3. 编写代码 1. 题目解析 题目地址&#xff1a;找到字符串中所有字母异位词 2. 讲解算法原理 有效字符个数count更新条件&#xff1a;满足【hash1表&#xff08;遍历s的表&#xff09;中对应元素出现次数<hash2表&am…

Python基础(八)之流程控制

Python基础&#xff08;八&#xff09;之流程控制 Python控制流程分为三种接口&#xff1a; 顺序结构选择结构循环结构 1、顺序结构 程序代码自上而下运行&#xff0c;逐条执行每一条Python代码&#xff0c;不重复执行任何代码&#xff0c;也不会跳过任何代码。 当语句与语…

【现代C++】智能指针

在现代C中&#xff0c;智能指针是用来管理动态分配的内存&#xff0c;自动进行资源回收&#xff0c;以减少内存泄漏和提升代码安全性。主要有三种类型的智能指针&#xff1a;std::unique_ptr、std::shared_ptr和std::weak_ptr。以下是这些智能指针的详细介绍&#xff1a; 1. s…

使用 VS Code + Github 搭建个人博客

搭建个人博客的方案 现在&#xff0c;搭建个人博客的方式有很多&#xff0c;门槛也很低。 可以选择已有平台&#xff1a; 掘金语雀知乎简书博客园SegmentFault… 也可以选择一些主流的博客框架&#xff0c;自行搭建。 HexoGitBookVuePressdumi… 如何选择&#xff1f; 我…

【TB作品】MSP430,波形发生器,单片机,Proteus仿真

文章目录 题目效果梯形波100个点产生方法锯齿波100个点产生方法c代码和proteus仿真 题目 114 波形发生器的制作 设计要求 设计一个能产生正弦波、方波、三角波、梯形波、锯齿波的波形发生器。设置5个开关K1~K5(从 上到下),分别对应正弦波、方波、三角波、梯形波、锯齿波,按一下…

在Linux中进行OpenSSH升级

由于OpenSSH有严重漏洞&#xff0c;因此需要升级OpenSSH到最新版本。 OpenSSL和OpenSSH都要更新&#xff0c;OpenSSH依赖于OpenSSL。 第一步&#xff0c;查看当前的OpenSSH服务版本。 命令&#xff1a;ssh -V 第二步&#xff0c;安装、启动telnet&#xff0c;关闭安全文件&a…

Pycharm连接远程服务器Anoconda中的虚拟环境

在配置远程解释器时&#xff0c;踩过一些坑&#xff0c;现在记录一下配置过程&#xff1a; 步骤1&#xff1a; 打开pycharm的File里面的Settings 里面的Project:你的项目名称目录下的Python Interpreter。 步骤二&#xff1a; 点击右上角的“add interpreter”&#xff0c;选择…

详解MySql索引

目录 一 、概念 二、使用场景 三、索引使用 四、索引存在问题 五、命中索引问题 六、索引执行原理 一 、概念 索引是一种特殊的文件&#xff0c;包含着对数据表里所有记录的引用指针。暂时可以理解成C语言的指针,文章后面详解 二、使用场景 数据量较大&#xff0c;且…

代码算法训练营day9 | 28. 实现 strStr() 、459.重复的子字符串

day9&#xff1a; 28. 实现 strStr()KMP的主要应用&#xff1a;什么是前缀表&#xff1a;前缀表是如何记录的&#xff1a; 如何计算前缀表&#xff1a;构造next数组&#xff1a;1、初始化2、处理前后缀不相同的情况3、处理前后缀相同的情况 代码&#xff1a; 459.重复的子字符串…

Python算法100例-4.1 将真分数分解为埃及分数

完整源代码项目地址&#xff0c;关注博主私信源代码后可获取 1.问题描述2.问题分析3.算法设计4.补充知识点5.确定程序框架6.完整的程序 1&#xff0e;问题描述 现输入一个真分数&#xff0c;请将该分数分解为埃及分数。 2&#xff0e;问题分析 真分数&#xff08;a proper…

面向控制台编程?Java的GUI开发

记得之前刚开始学习Java&#xff0c;按部就班去阅读《Java核心技术》这本书的时候&#xff0c;总是听别人提起&#xff0c;java swing那一章不用看了。然后直到对着控制台编程了半年&#xff0c;回来捡起了Swing图形界面&#xff0c;跟着网上搞了坦克大战的游戏&#xff0c;总觉…

ECMAscript6学习

ECMAscript6介绍 ECMA是一个浏览器脚本标准制定的公司&#xff0c;Netscape 创造了 JavaScript 由于商标原因&#xff0c; 后面ECMA公司取名ECMAscript 1 发布&#xff0c;JavaScript 也就是 ECMAscript.到现在最新的版本是6&#xff0c;简称es6. 新增let 与const let 与const …

Unity在UGUI上通过绘制网格顶点自由画线

该插件的实现是使用UI组件的绘图API来动态生成和修改几何形状&#xff0c;可自由动态更改画线的粗细、拐角圆滑度、颜色&#xff0c;自由增减节点&#xff0c;不额外增加gameobject&#xff0c;并且在原生的UGUI上以ScreenSpace-Overlay的状态下&#xff0c;显示效果如下所示 …