【Spark分布式内存计算框架——Spark SQL】3. SparkSQL 概述(下)、DataFrame

news2025/7/20 21:24:18

2.2 官方定义

SparkSQL模块官方定义:针对结构化数据处理Spark Module模块。
在这里插入图片描述
主要包含三层含义:
在这里插入图片描述
第一、针对结构化数据处理,属于Spark框架一个部分

  • 结构化数据:一般指数据有固定的 Schema(约束),例如在用户表中,name 字段是 String 型,那么每一条数据的 name 字段值都可以当作 String 来使用;
    在这里插入图片描述
  • schema信息,包含字段的名称和字段的类型,比如:JSON、XML、CSV、TSV、MySQL Table、ORC、Parquet,ES、MongoDB等都是结构化数据;

第二、抽象数据结构:DataFrame

  • 将要处理的结构化数据封装在DataFrame中,来源Python数据分析库Pandas和R语言dataframe;
  • DataFrame = RDD + Schema信息;

第三、分布式SQL引擎,类似Hive框架

  • 从Hive框架继承而来,Hive中提供bin/hive交互式SQL命令行及HiveServer2服务,SparkSQL都可以;

Spark SQL模块架构示意图如下:
在这里插入图片描述

2.3 SparkSQL 特性

Spark SQL是Spark用来处理结构化数据的一个模块,主要四个特性:
在这里插入图片描述
第一、易整合

  • 可以使用Java、Scala、Python、R等语言的API操作。
    在这里插入图片描述
    第二、统一的数据访问
  • 连接到任何数据源的方式相同。
    在这里插入图片描述
    第三、兼容Hive
  • 支持Hive HQL的语法,兼容hive(元数据库、SQL语法、UDF、序列化、反序列化机制)。
    在这里插入图片描述
    第四、标准的数据连接
  • 可以使用行业标准的JDBC或ODBC连接
    在这里插入图片描述
    SparkSQL模块官方文档:http://spark.apache.org/docs/2.4.5/sql-programming-guide.html

第三章 DataFrame

DataFrame它不是Spark SQL提出来的,而是早期在R、Pandas语言就已经有了的。就易用性而言,对比传统的MapReduce API,说Spark的RDD API有了数量级的飞跃并不为过。然而,对于没有MapReduce和函数式编程经验的新手来说,RDD API仍然存在着一定的门槛。另一方面,数据科学家们所熟悉的R、Pandas等传统数据框架虽然提供了直观的API,却局限于单机处理,无法胜任大数据场景。为了解决这一矛盾,Spark SQL 1.3.0在原有SchemaRDD的基础上提供了与R和Pandas风格类似的DataFrame API。新的DataFrame AP不仅可以大幅度降低普通开发者的学习门槛,同时还支持Scala、Java与Python三种语言。更重要的是,由于脱胎自SchemaRDD,DataFrame天然适用于分布式大数据场景。

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

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

相关文章

MapReduce paper(2004)-阅读笔记

文章目录前言摘要(Abstract)一、引言( Introduction)二、编程模型(Programming Model)三、实现(Implementation)3.1、执行概述(Execution Overview)3.2、主节点数据结构(Master Data…

im 应用多点登录和消息漫游架构

本文主要节选和总结自沈剑大佬的 微信多点登录与QQ消息漫游架构随想和文章的评论,略有删改 1、多点登录和消息漫游架构 多点登录指的是同个账号可以在多类终端(安卓、pc)同时登录,但是同类终端只能在唯一的一台设备上登录。 消息漫游指的是服务端保存聊天…

超详细讲解线性表和顺序表!!

超详细讲解线性表和顺序表!!线性表顺序表顺序表的概念及结构静态顺序表动态顺序表顺序表接口实现1、创建2、初始化3、扩容4、尾插5、打印6、销毁7、尾删8、头插9、头删10、插入任意位置11、删除任意位置12、查找13、修改线性表 线性表(linea…

分析C语言位域的访问开销

背景 C语言的位域用于描述结构体的指定字段占多少bit,使得多个字段可以存到一个字节里,也可以让一个字段占多个字节。它能减小结构体的内存占用,同时还能精确限定结构体字段的取值范围。 问题的提出 项目上有个硬件模块,它输入…

Linux系统下基于Docker安装Yapi,并且迁移Yapi数据

本文主要讲四个部分: 1.什么是Yapi 2.Centos7 下基于docker安装Yapi 3.Yapi数据迁移 4.利用Nginx反向代理 什么是Yapi YApi 是高效、易用、功能强大的 api 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、…

网络安全-内网DNS劫持-ettercap

网络安全-内网DNS劫持-ettercap 前言 一,我也是初学者记录的笔记 二,可能有错误的地方,请谨慎 三,欢迎各路大神指教 四,任何文章仅作为学习使用 五,学习网络安全知识请勿适用于违法行为 学习网络安全知识请…

【C++、数据结构】哈希 — 闭散列与哈希桶的模拟实现

文章目录📖 前言1. STL中哈希表的两个应用⚡1.1 🌟unordered_set1.2 🌟unordered_map2. 常见查找的性能对比💥3. 哈希表模拟实现🏁3.1 哈希的概念:3.2 哈希函数:3.3 哈希冲突:3.4 闭…

RPC概念与理解(一)

目录 1.写在前面 2. 电商系统的演变 2.1 单一应用框架 2.2 垂直应用框架 2.3 分布式应用架构(RPC) 2.4 流动计算架构(SOA) 2.5 架构演变详解 3.远程调用方式 RPC Http 总结:对比RPC和http的区别 4.什么是PRC 5.RPC是什么 6.RPC剖析 6.1.RPC的工作原理…

Java并发编程解析之基于JDK源码解析Java领域中ReentrantLock锁的设计思想与实现原理

一、开头 在并发编程领域,有两大核心问题:一个是互斥,即同一时刻只允许一个线程访问共享资源;另一个是同步,即线程之间如何通信、协作。 主要原因是,对于多线程实现实现并发,一直以来&#xff…

【蓝桥杯集训3】二分专题(3 / 5)

目录 二分模板 1460. 我在哪? - 二分答案 哈希表 1221. 四平方和 - 哈希表 / 二分 1、哈希表 2、二分 自定义排序 1227. 分巧克力 - 113. 特殊排序 - 二分模板 l r >> 1 —— 先 r mid 后 l mid1 —— 寻找左边界 —— 找大于某个数的最小值lr…

SRV6跨域优势

背景 运营商网络作为一张覆盖全国的网络,其主体分为骨干,省干,城域网层级,主流的管理模式为分层级管理。随着运营商网络服务的终端规模不断增长,不同地理位置之间网络连接的需求变得非常的普遍,但不同网络…

SpringMVC使用JSTL

简介 JSTL 标签是一个开放源代码的 JSP 标签库,是由 apache 的 jakarta 小组来维护的;JSTL 只能运行在支持 JSP1.2 和Servlet2.3 规范的容器上,在 jsp 页面中经常用到,能帮助我们实现一些特殊的功能,例如:…

windows-Mysql的主从数据库同步设置

复制原有的mysql修改my.ini配置文件 修改端口号修改从数据的地址和从数据库的数据存放地址安装从数据库进入从数据库的bin目录,打开命令窗口输入命令:mysqld.exe install mysql-back --defaults-file "C:\ProgramData\MySQL\MySQL Server 5.7-back\…

1、创建第一个Android项目

1.1、创建Android工程项目:双击打开Android Studio。在菜单栏File中new-->new project3、在界面中选择Empty Activity,然后选择next4、在下面界面中修改工程名称,工程保存路径选择java语言,然后点击finishAndroid studio自动为…

实现了统一消息中心的微服务基础框架 JVS,快点赞收藏

一、开源项目简介基于JVS(基于spring cloud封装)的基础开源框架,实现了基于多对多租户能力的管理系统。二、基础框架实现功能支持数据管理支持分布式定时任务支持分布式日志采集支持系统监控支持动态配置中心支持模板消息支持链路跟踪支持邮件…

jenkins部署指定任意版本和配置详细教程 jenkins 2.361版本示例

Jenkins构建CI/CD什么是CI/CD:持续集成/持续发布---开发(git) -->git主库-->jenkins(gitjdktomcatmaven打包测试)-->发布到tomcat服务器。持续集成(Continuous Integration, CI): 代码合并,构建,部署,测试都在…

【Airplay_BCT】Bonjour 和本地链接、域名和 DNS

Bonjour 零配置网络架构支持在局域网或广域网上发布和发现基于 TCP/IP 的服务。本文档概括介绍了 Bonjour 架构,并简要介绍了可用的 Bonjour API。 Bonjour 是 Apple 对一套零配置网络协议的实现。 Bonjour 旨在让用户更轻松地进行网络配置。 例如,Bon…

ChatGPT一路狂飙,NVMe SSD能否应对性能挑战?

近日,ChatGPT持续火爆,用户在短短两个月内迅速破亿,大量用户涌入导致ChatGPT访问和数据规模指数级增加。与数月前发布的版本相比,新的ChatGPT“智能”了许多,不仅可以像人类一样聊天交流,甚至能够完成一定程…

70. with open( ) as 以自动关闭文件的方式打开文件

70. with open( ) as 以自动关闭文件的方式打开文件 文章目录70. with open( ) as 以自动关闭文件的方式打开文件1. 知识回顾1. open函数语法参考2. 准备工作3. mode模式知识回顾2. with open 语句的作用3. with open 语句语法4. with open 语句实操5. 总结1. 代码总结2. 重点知…

Pandas学习2

Pandas学习2 None 两种缺失数据:None、np.nan(NaN) None是python自带的,不能参与计算。类型是object np.nan 浮点类型,说明能参与计算,但是结果是nan pandas中的None和np.nan pandas中的None和np.nan都视为np.nan 如果列…