前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Spark DataFrame基本操作

Spark DataFrame基本操作

作者头像
sparkle123
发布于 2018-04-26 05:25:23
发布于 2018-04-26 05:25:23
1K00
代码可运行
举报
运行总次数:0
代码可运行

DataFrame的概念来自R/Pandas语言,不过R/Pandas只是runs on One MachineDataFrame是分布式的,接口简单易用。

  • Threshold: Spark RDD API VS MapReduce API
  • One Machine:R/Pandas

官网的说明 http://spark.apache.org/docs/2.1.0/sql-programming-guide.html#datasets-and-dataframes 拔粹如下:

  • A Dataset is a distributed collection of data:分布式的数据集
  • A DataFrame is a Dataset organized into named columns. (RDD with Schema) 以列(列名、列的类型、列值)的形式构成的分布式数据集,按照列赋予不同的名称
  • An abstraction for selecting,filtering,aggregation and plotting structured data
  • It is conceptually equivalent to a table in a relational database or a data frame in R/Python

RDDDataFrame对比:

  • RDD运行起来,速度根据执行语言不同而不同:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java/scala  ==> jvm
python ==> python runtime
  • DataFrame运行起来,执行语言不同,但是运行速度一样:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
java/scala/python ==> Logic Plan

根据官网的例子来了解下DataFrame的基本操作,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.apache.spark.sql.SparkSession

/**
  * DataFrame API基本操作
  */
object DataFrameApp {
  def main(args: Array[String]): Unit = {

    val spark = SparkSession
      .builder()
      .appName("DataFrameApp")
      .master("local[2]")
      .getOrCreate();

    // 将json文件加载成一个dataframe
    val peopleDF = spark.read.json("C:\\Users\\Administrator\\IdeaProjects\\SparkSQLProject\\spark-warehouse\\people.json");
    // Prints the schema to the console in a nice tree format.
    peopleDF.printSchema();

    // 输出数据集的前20条记录
    peopleDF.show();

    //查询某列所有的数据: select name from table
    peopleDF.select("name").show();

    // 查询某几列所有的数据,并对列进行计算: select name, age+10 as age2 from table
    peopleDF.select(peopleDF.col("name"), (peopleDF.col("age") + 10).as("age2")).show();

    //根据某一列的值进行过滤: select * from table where age>19
    peopleDF.filter(peopleDF.col("age") > 19).show();

    //根据某一列进行分组,然后再进行聚合操作: select age,count(1) from table group by age
    peopleDF.groupBy("age").count().show();

 spark.stop();
  }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.03.05 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
DataFrame常用API操作
以列的(列名,列的类型。列值)的形式构成的分布式数据集,按照列赋予不同名称,约等于关系数据库的数据表
羊羽shine
2019/08/27
1.3K0
慕课网Spark SQL日志分析 - 5.DateFrame&Dataset
DataFrame 不是Spark Sql提出的。而是在早起的Python、R、Pandas语言中就早就有了的。
Meet相识
2018/09/12
7070
慕课网Spark SQL日志分析 - 5.DateFrame&Dataset
大数据技术Spark学习
Spark SQL 是 Spark 用来处理结构化数据的一个模块,它提供了一个编程抽象叫做 DataFrame,并且作为分布式 SQL 查询引擎的作用。 我们已经学习了 Hive,它是将 Hive SQL 转换成 MapReduce 然后提交到集群上执行,大大简化了编写 MapReduce 的程序的复杂性,由于 MapReduce 这种计算模型执行效率比较慢。所以 Spark SQL 的应运而生,它是将 Spark SQL 转换成 RDD,然后提交到集群执行,执行效率非常快!
黑泽君
2019/05/10
5.4K0
大数据技术Spark学习
05-快速理解SparkSQL的DataSet
可从JVM对象构造Dataset,然后函数式转换(map、flatMap、filter等)操作。Dataset API在Scala和Java中可用。
JavaEdge
2024/05/26
860
05-快速理解SparkSQL的DataSet
Spark SQL,DataFrame以及 Datasets 编程指南 - For 2.0
Spark SQL 是 Spark 用来处理结构化数据的一个模块。与基础的 Spark RDD API 不同,Spark SQL 提供了更多数据与要执行的计算的信息。在其实现中,会使用这些额外信息进行优化。可以使用 SQL 语句和 Dataset API 来与 Spark SQL 模块交互。无论你使用哪种语言或 API 来执行计算,都会使用相同的引擎。这让你可以选择你熟悉的语言(现支持 Scala、Java、R、Python)以及在不同场景下选择不同的方式来进行计算。
codingforfun
2018/08/24
4.1K0
第三天:SparkSQL
Spark SQL是Spark用来处理结构化数据的一个模块,它提供了2个编程抽象:DataFrame和DataSet,并且作为分布式SQL查询引擎的作用。 我们已经学习了Hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduc的程序的复杂性,由于MapReduce这种计算模型执行效率比较慢。所有Spark SQL的应运而生,它是将Spark SQL转换成RDD,然后提交到集群执行,执行效率非常快!
sowhat1412
2020/11/05
13.3K0
第三天:SparkSQL
Spark SQL 快速入门系列(2) | SparkSession与DataFrame的简单介绍
  在老的版本中,SparkSQL 提供两种 SQL 查询起始点:一个叫SQLContext,用于Spark 自己提供的 SQL 查询;一个叫 HiveContext,用于连接 Hive 的查询。
不温卜火
2020/10/28
2.3K0
Spark SQL 快速入门系列(2) | SparkSession与DataFrame的简单介绍
Spark之【SparkSQL编程】系列(No1)——《SparkSession与DataFrame》
上一篇博客已经为大家介绍完了SparkSQL的基本概念以及其提供的两个编程抽象:DataFrame和DataSet,本篇博客,博主要为大家介绍的是关于SparkSQL编程的内容。考虑到内容比较繁琐,故分成了一个系列博客。本篇作为该系列的第一篇博客,为大家介绍的是SparkSession与DataFrame。
大数据梦想家
2021/01/27
1.6K0
Spark之【SparkSQL编程】系列(No1)——《SparkSession与DataFrame》
Spark SQL实战(04)-API编程之DataFrame
Spark SQL中,SQLContext、HiveContext都是用来创建DataFrame和Dataset主要入口点,二者区别如下:
JavaEdge
2023/03/25
4.3K0
Spark SQL实战(04)-API编程之DataFrame
spark2 sql读取数据源编程学习样例2:函数实现详解
问题导读 1.RDD转换为DataFrame需要导入哪个包? 2.Json格式的Dataset如何转换为DateFrame? 3.如何实现通过jdbc读取和保存数据到数据源? spark2 sql
用户1410343
2018/03/26
1.3K0
spark2 sql读取数据源编程学习样例2:函数实现详解
Spark SQL | Spark,从入门到精通
欢迎阅读美图数据技术团队的「Spark,从入门到精通」系列文章,本系列文章将由浅入深为大家介绍 Spark,从框架入门到底层架构的实现,相信总有一种姿势适合你。
美图数据技术团队
2019/04/19
2K0
Spark SQL | Spark,从入门到精通
Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN
本文介绍了基于Spark的SQL编程的常用概念和技术。首先介绍了Spark的基本概念和架构,然后详细讲解了Spark的数据类型和SQL函数,最后列举了一些Spark在实际应用中的例子。
片刻
2018/01/05
26.2K0
Spark SQL | 目前Spark社区最活跃的组件之一
Spark SQL是一个用来处理结构化数据的Spark组件,前身是shark,但是shark过多的依赖于hive如采用hive的语法解析器、查询优化器等,制约了Spark各个组件之间的相互集成,因此Spark SQL应运而生。
大数据学习与分享
2020/08/10
2.5K0
Spark SQL | 目前Spark社区最活跃的组件之一
Spark SQL
Hive是一个基于Hadoop 的数据仓库工具,提供了类似于关系数据库SQL的查询语言HiveQL,用户可以通过HiveQL语句快速实现简单的MapReduce统计,Hive 自身可以自动将HiveQL语句快速转换成MapReduce 任务进行运行。当用户向Hive输入一段命令或查询(即HiveQL 语句)时, Hive需要与Hadoop交互来完成该操作。该命令或查询首先进入到驱动模块,由驱动模块中的编译器进行解析编译,并由优化器对该操作进行优化计算,然后交给执行器去执行,执行器通常的任务是启动一个或多个MapReduce任务。如图所示描述了用户提交一段SQL查询后,Hive把sQL 语句转化成MapReduce任务进行执行的详细过程。
Francek Chen
2025/01/22
1370
Spark SQL
Spark笔记12-DataFrame创建、保存
DataFrame可以翻译成数据框,让Spark具备了处理大规模结构化数据的能力。
皮大大
2021/03/02
1.1K0
Spark之【SparkSQL编程】系列(No2)——《DataSet概念入门以及与DataFrame的互操作》
本篇作为【SparkSQL编程】系列的第二篇博客,为大家介绍的是DataSet概念入门以及与DataFrame的互操作。
大数据梦想家
2021/01/27
2.4K0
Spark之【SparkSQL编程】系列(No2)——《DataSet概念入门以及与DataFrame的互操作》
Spark SQL DataFrame与RDD交互
Spark SQL 支持自动将 JavaBeans 的 RDD 转换为 DataFrame。使用反射获取的 BeanInfo 定义了表的 schema。目前为止,Spark SQL 还不支持包含 Map 字段的 JavaBean。但是支持嵌套的 JavaBeans,List 以及 Array 字段。你可以通过创建一个实现 Serializable 的类并为其所有字段设置 getter 和 setter 方法来创建一个 JavaBean。
smartsi
2019/08/07
1.8K0
spark2 sql读取数据源编程学习样例1
问题导读 1.dataframe如何保存格式为parquet的文件? 2.在读取csv文件中,如何设置第一行为字段名? 3.dataframe保存为表如何指定buckete数目? 作为一个开发人员
用户1410343
2018/03/26
1.7K0
spark2 sql读取数据源编程学习样例1
Spark SQL从入门到精通
熟悉spark sql的都知道,spark sql是从shark发展而来。Shark为了实现Hive兼容,在HQL方面重用了Hive中HQL的解析、逻辑执行计划翻译、执行计划优化等逻辑,可以近似认为仅将物理执行计划从MR作业替换成了Spark作业(辅以内存列式存储等各种和Hive关系不大的优化);
Spark学习技巧
2019/05/09
1.2K0
Spark SQL从入门到精通
RDD和DataFrame转换
在利用反射机制推断RDD模式时,需要首先定义一个case class,因为,只有case class才能被Spark隐式地转换为DataFrame。
羊羽shine
2019/08/23
1.3K0
相关推荐
DataFrame常用API操作
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验