千家信息网

Spark SQL中怎么创建DataFrames

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"Spark SQL中怎么创建DataFrames",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"Spark SQL中怎么创建DataFra
千家信息网最后更新 2026年11月03日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安全错误 数据库的锁怎样保障安全 什么是科技互联网 上海喔噻互联网科技有限公司 厦门中拓互联网络科技有限公司 互联网 科技创业 以房互联网科技 小马过河互联网科技 互联网女皇 腾讯科技 新浪科技互联网 哈尔滨秒房互联网科技有限公司 哈尔滨新华互联网科技学院 深圳市罗太互联网科技有限公司 梅州GM互联网络科技有限公司 卡尔迅互联网科技有限公司 西安有哪些互联网高科技企业 广州梦谷互联网科技有限公司领导 万物互联网智能科技 保山互联网科技靠谱吗 互联网科技和医药行业 广西泛欧互联网科技有限公司 青岛易易互联网科技 科技制造互联网公司 互联网前沿科技 科技伦理 互联网公司 甘肃拓世互联网科技有限公司 中国的互联网科技企业的崛起 华服互联网科技官网 保险科技服务互联网营销体系 工业互联网山东科技大学 领航科技大厦互联网公司 优雇互联网科技有限公司
0