产生背景

DataFrame不是Spark SQL提出的,而是早期在R、Pandas语言就已经有了的。

Spark RDD API vs MapReduce API

Spark诞生之初,其中一个很重要的目标就是给大数据生态圈提供基于通用语言(java、scala、python)的而且简单易用的API。Spark RDD API 通过函数式编程模式。如果使用MapReduce,则代码量是非常多的。但是对于不懂Java或者Scala语言的小伙伴是很难上手的。

R/Pandas

在R语言中是有DataFrame概念的,而且R语言非常适合做数据统计和分析。但是R语言和Pandas的局限性非常强。仅仅能支持单机处理。现在单机处理的数据能力必然是有限的。
因此Spark的DataFrame就应运而生。Spark SQL中的DataFrame就是从R/Pandas中转换过来的。

Spark SQL DataFrame

DataSet是一个分布式的数据集。
DataFrame是一个以列(列名、列的类型、列值)的形式构成的分布式数据集。按照列赋予不同的名称。可以理解为关系型数据库中的一张表。DataFrame可以包括文件中的数据、hive中的表或者其他数据源如Mysql,Hbase,或者已存在的RDD。
在spark1.3之前没有DataFrame概念,而是有一个SchemaRDD概念。

DataFrame vs RDD

RDD是分布式的可以进行并行处理的集合。
DataFrame与RDD类似,也是一个分布式数据集,但是DataFrame提供的更像是传统数据库中的一张表。除了数据之外,还有列名、列值、列属性。
DataFrame所提供的API层次更高。

加入RDD中有一个Person数据,每一行就是一条Person数据,但是Person数据中有什么具体信息都不知道。

DataFrame是按照列的形式组织的,所以我们必然知道列名是什么,数据类型是什么。
因此使用DataFrame时,sparkSQL在执行过程中可以很清楚的知道数据集中有哪些列,列的类型是什么。Spark可以根据这些信息做很好的优化。例如可以只取一个name字段或者只获取age字段,而不需要知道其他列数据。

Spark SQL之DataFrame概述相关推荐

  1. Spark性能优化 -- Spark SQL、DataFrame、Dataset

    本文将详细分析和总结Spark SQL及其DataFrame.Dataset的相关原理和优化过程. Spark SQL简介 Spark SQL是Spark中 具有 大规模关系查询的结构化数据处理 模块 ...

  2. Spark SQL and DataFrame for Spark 1.3

    Spark SQL and DataFrame Guide 启动Start Shell [jifeng@feng03 spark-1.3.0-bin-hadoop2.4]$ ./bin/spark-s ...

  3. dataframe记录数_大数据系列之Spark SQL、DataFrame和RDD数据统计与可视化

    Spark大数据分析中涉及到RDD.Data Frame和SparkSQL的操作,本文简要介绍三种方式在数据统计中的算子使用. 1.在IPython Notebook运行Python Spark程序 ...

  4. Spark修炼之道(进阶篇)——Spark入门到精通:第八节 Spark SQL与DataFrame(一)

    本节主要内宾 Spark SQL简介 DataFrame 1. Spark SQL简介 Spark SQL是Spark的五大核心模块之一,用于在Spark平台之上处理结构化数据,利用Spark SQL ...

  5. Spark15:Spark SQL:DataFrame常见算子操作、DataFrame的sql操作、RDD转换为DataFrame、load和save操作、SaveMode、内置函数

    前面我们学习了Spark中的Spark core,离线数据计算,下面我们来学习一下Spark中的Spark SQL. 一.Spark SQL Spark SQL和我们之前讲Hive的时候说的hive ...

  6. Spark SQL and DataFrame Guide(1.4.1)——之DataFrames

    Spark SQL是处理结构化数据的Spark模块.它提供了DataFrames这样的编程抽象.同一时候也能够作为分布式SQL查询引擎使用. DataFrames DataFrame是一个带有列名的分 ...

  7. Spark SQL编程DataFrame 创建_大数据培训

    DataFrame 创建 在Spark SQL中SparkSession是创建DataFrame和执行SQL的入口,创建DataFrame有三种方式:通过Spark的数据源进行创建:从一个存在的RDD ...

  8. Spark SQL之RDD转DataFrame

    准备文件 首先准备好测试文件info.txt,内容如下: 1,vincent,20 2,sarah,19 3,sofia,29 4,monica,26 将RDD转成DataFrame 方式一:反射 可 ...

  9. Spark SQL中的DataFrame

    在2014年7月1日的 Spark Summit 上,Databricks 宣布终止对 Shark 的开发,将重点放到 Spark SQL 上.在会议上,Databricks 表示,Shark 更多是 ...

最新文章

  1. sum 函数'int' object is not callable
  2. 2018.09.18 atcoder Many Formulas(搜索)
  3. 一 在应用中升级u-boot、内核以及文件系统
  4. 简单的前端上传图片代码
  5. 常识知识在AI不同领域应用的最新研究进展
  6. . Two Sum(C, C++, Python)
  7. python课程典范选优_python学生选课系统
  8. 学习simple.data之基础篇
  9. 关于Angular样式封装
  10. net 调用java_NET调用Java之100-Continue的坑
  11. 程序员实习期馒头加酸菜,转正后月薪10K起步:走路都带风
  12. ai电话机器人销售过程自动化功能,黑斑马电话机器人系统
  13. ros rviz显示rosbag中的图像和imu数据
  14. 如何查看winmail.dat中的文件
  15. 时间片(time-slicing)轮循调度(round-robin scheduling)
  16. 写给‘真‘零经验的童鞋学习编程的建议
  17. ACdream原创群赛(11)の风神日华神专场 H - XXX的机器人
  18. 关于ADS调参比较好的方式
  19. 如何解决路由环路的产生
  20. 2008年将是视频中国年

热门文章

  1. 解决 Windows Update 时提示当前无法检查更新,因为未运行服务
  2. Ajax框架DWR入门
  3. REDIS实践之请勿踩多进程共用一个实例连接的坑
  4. nginx lua调用redis和mongo
  5. git commit Please tell me who you are it config --global user.email you@example.com
  6. PHP处理跨域:header(AccessControlAllowOrigin:星)允许所有来源访问;后端Curl请求转发
  7. Linux之sed:修改器按照字符和行数进行筛选和替换行值 选项[动作
  8. imdb数据集_朴素贝叶斯分类imdb(代码分享)
  9. java treemap用法_JAVA作业,使用TreeMapK,V类
  10. 目前主流的四大浏览器内核Trident、Gecko、WebKit以及Presto