千家信息网

Spark SQL中怎么创建DataFrames

发表于:2024-11-28 作者:千家信息网编辑
千家信息网最后更新 2024年11月28日,本篇内容主要讲解"Spark SQL中怎么创建DataFrames",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Spark SQL中怎么创建DataFra
千家信息网最后更新 2024年11月28日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。

从上图可以看出,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

  • 测试数据如下:员工表

  • 定义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查询数据

  • 将DataFrame注册成表(视图)

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

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

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

数据 支持 查询 结构 分布式 对象 学习 效率 程序 结构化 仓库 优点 内容 函数 引擎 数据库 数据源 方法 标准 概念 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 超微服务器主板接线图解 崇明区什么是软件开发排名靠前 香肠派对哪个服务器有中文 服务器和交换机是一个东西吗 抓取股市数据库 海南服务器机柜生产厂家云空间 爱钱进为什么不能登录服务器 我的世界没人管理的服务器 威海金蝶软件开发公司 长沙移动软件开发服务 数据库连接组件 摩尔庄园一直显示正在进入服务器 手动配置数据库服务器方法 零纪元服务器关闭 数据库删除日志ldf文件 网络安全法对个人所得税的规定 法治微课堂谈谈网络安全 电子政务与网络安全案例 无人机用一般用什么软件开发 电子商务网站数据库设计er图 云服务器通用型 阿里云服务器快照怎么生成的 公安派出所网络安全授课微视频 穆线网络技术服务中心 河南麦唯网络技术有限公司 河北省网络安全技能 服务器转到装系统界面会卡 数据库与系统哪个更好 ea服务器掉线 方舟官方新手服务器删档
0