我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Spark SQL中怎么创建DataFrames

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Spark SQL中怎么创建DataFrames

本篇内容主要讲解“Spark SQL中怎么创建DataFrames”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spark SQL中怎么创建DataFrames”吧!

一、Spark SQL简介

Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。

为什么要学习Spark SQL?我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所以Spark SQL的应运而生,它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快!同时Spark SQL也支持从Hive中读取数据。

二、Spark SQL的特点

  • 无缝集成在Spark中,将SQL查询与Spark程序混合。Spark SQL允许您使用SQL或熟悉的DataFrame API在Spark程序中查询结构化数据。适用于Java、Scala、Python和R语言。

  • 提供统一的数据访问,以相同的方式连接到任何数据源。DataFrames和SQL提供了一种访问各种数据源的通用方法,包括Hive、Avro、Parquet、ORC、JSON和JDBC。您甚至可以通过这些源连接数据。

  • 支持Hive集成。在现有仓库上运行SQL或HiveQL查询。Spark SQL支持HiveQL语法以及Hive SerDes和udf,允许您访问现有的Hive仓库。

  • 支持标准的连接,通过JDBC或ODBC连接。服务器模式为业务智能工具提供了行业标准JDBC和ODBC连接。

三、核心概念:DataFrames和Datasets

  • DataFrame

DataFrame是组织成命名列的数据集。它在概念上等同于关系数据库中的表,但在底层具有更丰富的优化。DataFrames可以从各种来源构建,例如:

  • 结构化数据文件

  • hive中的表

  • 外部数据库或现有RDDs

DataFrame API支持的语言有Scala,Java,Python和R。

Spark SQL中怎么创建DataFrames

从上图可以看出,DataFrame多了数据的结构信息,即schema。RDD是分布式的 Java对象的集合。DataFrame是分布式的Row对象的集合。DataFrame除了提供了比RDD更丰富的算子以外,更重要的特点是提升执行效率、减少数据读取以及执行计划的优化。

  • Datasets

Dataset是数据的分布式集合。Dataset是在Spark 1.6中添加的一个新接口,是DataFrame之上更高一级的抽象。它提供了RDD的优点(强类型化,使用强大的lambda函数的能力)以及Spark SQL优化后的执行引擎的优点。一个Dataset 可以从JVM对象构造,然后使用函数转换(map, flatMap,filter等)去操作。 Dataset API 支持Scala和Java。 Python不支持Dataset API。

四、创建DataFrames

  • 测试数据如下:员工表

Spark SQL中怎么创建DataFrames

  • 定义case class(相当于表的结构:Schema)

case class Emp(empno:Int,ename:String,job:String,mgr:Int,hiredate:String,sal:Int,comm:Int,deptno:Int)
  • 将HDFS上的数据读入RDD,并将RDD与case Class关联

val lines = sc.textFile("hdfs://bigdata111:9000/input/emp.csv").map(_.split(","))
  • 把每个Array映射成一个Emp的对象

val emp = lines.map(x => Emp(x(0).toInt,x(1),x(2),x(3).toInt,x(4),x(5).toInt,x(6).toInt,x(7).toInt))
  • 生成DataFrame

val allEmpDF = emp.toDF
  • 通过DataFrames查询数据

Spark SQL中怎么创建DataFrames

  • 将DataFrame注册成表(视图)

allEmpDF.createOrReplaceTempView("emp")
  • 执行SQL查询

spark.sql("select * from emp").show

到此,相信大家对“Spark SQL中怎么创建DataFrames”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Spark SQL中怎么创建DataFrames

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Spark SQL中怎么创建DataFrames

本篇内容主要讲解“Spark SQL中怎么创建DataFrames”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spark SQL中怎么创建DataFrames”吧!一、Spark SQL简介S
2023-06-01

Spark RDD怎么创建

这篇文章主要介绍“ Spark RDD怎么创建”,在日常操作中,相信很多人在 Spark RDD怎么创建问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答” Spark RDD怎么创建”的疑惑有所帮助!接下来,请跟
2023-06-02

sql中临时表怎么创建

创建 sql 临时表步骤如下:使用 create temporary table 语法创建表,指定表名和列定义。添加数据并对临时表进行操作,就像操作普通表一样。会话结束后,临时表将自动删除,或使用 drop table 语法手动删除。SQL
sql中临时表怎么创建
2024-05-10

Spark SQL怎么用

这篇文章主要介绍“Spark SQL怎么用”,在日常操作中,相信很多人在Spark SQL怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Spark SQL怎么用”的疑惑有所帮助!接下来,请跟着小编一起来
2023-06-03

Spark中怎么执行SQL数据

在Spark中,可以通过以下步骤执行SQL数据:创建一个SparkSession对象,用于连接和操作Spark集群。可以使用如下代码创建一个SparkSession:import org.apache.spark.sql.SparkSess
Spark中怎么执行SQL数据
2024-04-09

Spark Sql中FROM_UNIXTIME和UNIX_TIMESTAMP怎么使用

这篇文章主要介绍“Spark Sql中FROM_UNIXTIME和UNIX_TIMESTAMP怎么使用”,在日常操作中,相信很多人在Spark Sql中FROM_UNIXTIME和UNIX_TIMESTAMP怎么使用问题上存在疑惑,小编查阅
2023-06-29

navicat中怎么用sql语句创建表

在Navicat中使用SQL语句创建表可以通过以下步骤:打开Navicat数据库连接,在左侧的数据库列表中选择要创建表的数据库。点击工具栏中的“SQL编辑器”按钮,打开SQL编辑器窗口。在SQL编辑器中输入创建表的SQL语句,语法格式如下:
navicat中怎么用sql语句创建表
2024-05-06

sql创建表格怎么写

sql 中创建表的语法为:create table table_name (column1 data_type, column2 data_type, ...),其中 table_name 为表名,column1、column2 为列名,d
sql创建表格怎么写
2024-05-30

idea怎么创建sql文件

要创建一个 SQL 文件,可以按照以下步骤进行操作:打开一个文本编辑器,例如 Notepad++、Sublime Text 或者 Visual Studio Code。在文本编辑器中创建一个新的文件。输入 SQL 语句,按照所需的数据库操作
idea怎么创建sql文件
2024-04-09

sql server怎么用sql语句创建表

在 sql server 中使用 sql 语句创建表的方法:打开 sql server management studio 并连接到数据库服务器。选择要创建表的数据库。输入 create table 语句,指定表名、列名、数据类型和约束。单
sql server怎么用sql语句创建表
2024-08-19

SQL SERVER触发器怎么创建

本篇内容主要讲解“SQL SERVER触发器怎么创建”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL SERVER触发器怎么创建”吧!触发器是一种特殊的存储过程,触发器主要是通过事件进行触发
2023-06-29

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录