spark sql 创建dataframes

Table of Contents

  • 1. spark sql
  • 2. SQLContext
    • 2.1. sql context是spark sql的所有功能入口点
    • 2.2. 通过spark context创建sql context
    • 2.3. hive context功能上多于sql context,未来sql context也会增加功能
  • 3. DataFrames
    • 3.1. 功能
    • 3.2. 创建DataFrames
    • 3.3. DSL

1 spark sql

  • 是spark的一个模块
  • 处理结构化数据
  • 提供了DataFrames作为编程的抽象层
  • 同时也是一个分布式sql查询引擎
  • 可以从hive中读取数据

2 SQLContext

2.1 sql context是spark sql的所有功能入口点

2.2 通过spark context创建sql context

val sc: SparkContext // An existing SparkContext.
val sqlContext = new org.apache.spark.sql.SQLContext(sc)

注意,上面的val sc: …其实不需要写,因为启动spark-shell的时候有这么一个提示, 所以直接用就好。

Spark context available as sc.

2.3 hive context功能上多于sql context,未来sql context也会增加功能

不过由于我对hive不感兴趣,不会创建hive context

3 DataFrames

3.1 功能

  • 分布式数据集合
  • 列的方式组织
  • 理解为关系数据库的表
  • 可以从结构化文件,hive表,外部数据库或者RDD构造

3.2 创建DataFrames

通过SQLContext创建DataFrames,可以从外部文件,hive表或者RDD来创建。 为了测试本地文件,启动spark-shell的时候不要用–master连接spark master, 否则会提示找不到本地文件。 而如果想访问hdfs文件,启动spark-shell的时候要用–master。

scala> val sqlContext = new org.apache.spark.sql.SQLContext(sc)
sqlContext: org.apache.spark.sql.SQLContext = [email protected]

scala> val df = sqlContext.read.json("/home/smile/people.json")
df: org.apache.spark.sql.DataFrame = [age: bigint, name: string]

scala> df.printSchema()
df.printSchema()
root
 |-- age: long (nullable = true)
 |-- name: string (nullable = true)

scala> df.show()
df.show()
+---+----+
|age|name|
+---+----+
| 38|Dean|
+---+----+

3.3 DSL

DataFrames提供了DSL方面对结构化数据进行操作,都是些函数,比如select, df, printSchema, show, groupBy, filter等。

scala> df.select("name").show()
+----+
|name|
+----+
|Dean|
+----+

具体请参考官方文档

Author: dean

Created: 2015-11-12 四 09:33

Validate

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-14 00:33:31

spark sql 创建dataframes的相关文章

Spark 官方文档(5)——Spark SQL,DataFrames和Datasets 指南

Spark版本:1.6.2 概览 Spark SQL用于处理结构化数据,与Spark RDD API不同,它提供更多关于数据结构信息和计算任务运行信息的接口,Spark SQL内部使用这些额外的信息完成特殊优化.可以通过SQL.DataFrames API.Datasets API与Spark SQL进行交互,无论使用何种方式,SparkSQL使用统一的执行引擎记性处理.用户可以根据自己喜好,在不同API中选择合适的进行处理.本章中所有用例均可以在spark-shell.pyspark shel

Apache Spark 2.2.0 中文文档 - Spark SQL, DataFrames and Datasets Guide | ApacheCN

Spark SQL, DataFrames and Datasets Guide Overview SQL Datasets and DataFrames 开始入门 起始点: SparkSession 创建 DataFrames 无类型的Dataset操作 (aka DataFrame 操作) Running SQL Queries Programmatically 全局临时视图 创建Datasets RDD的互操作性 使用反射推断Schema 以编程的方式指定Schema Aggregatio

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

Spark SQL是处理结构化数据的Spark模块.它提供了DataFrames这样的编程抽象.同一时候也能够作为分布式SQL查询引擎使用. DataFrames DataFrame是一个带有列名的分布式数据集合.等同于一张关系型数据库中的表或者R/Python中的data frame,只是在底层做了非常多优化:我们能够使用结构化数据文件.Hive tables,外部数据库或者RDDS来构造DataFrames. 1. 開始入口: 入口须要从SQLContext类或者它的子类開始,当然须要使用S

Spark SQL, DataFrames and Datasets 指南

概述 Spark SQL 是 Spark 处理结构化数据的模块; 与基础的 Spark RDD API 不同, Spark SQL 提供的接口提供给 Spark 更多的关于数据和执行计算的结; 内在的, Spark SQL 使用这些额外的信息去执行额外的优化; 这里有几种包括 SQL 和 Datasets API 在内的与 Spark SQL 交互的方法; 当计算结果使用相同的执行引擎, 独立于你使用的表达计算的 API/语言; 这种统一意味着开发者可以依据哪种 APIs 对于给定的表达式提供了

转】Spark SQL 之 DataFrame

原博文出自于: http://www.cnblogs.com/BYRans/p/5003029.html 感谢! Spark SQL 之 DataFrame 转载请注明出处:http://www.cnblogs.com/BYRans/ 概述(Overview) Spark SQL是Spark的一个组件,用于结构化数据的计算.Spark SQL提供了一个称为DataFrames的编程抽象,DataFrames可以充当分布式SQL查询引擎. DataFrames DataFrame是一个分布式的数据

spark结构化数据处理:Spark SQL、DataFrame和Dataset

本文讲解Spark的结构化数据处理,主要包括:Spark SQL.DataFrame.Dataset以及Spark SQL服务等相关内容.本文主要讲解Spark 1.6.x的结构化数据处理相关东东,但因Spark发展迅速(本文的写作时值Spark 1.6.2发布之际,并且Spark 2.0的预览版本也已发布许久),因此请随时关注Spark SQL官方文档以了解最新信息. 文中使用Scala对Spark SQL进行讲解,并且代码大多都能在spark-shell中运行,关于这点请知晓. 概述 相比于

Spark SQL and DataFrame Guide(1.4.1)——之Data Sources

数据源(Data Sources) Spark SQL通过DataFrame接口支持多种数据源操作.一个DataFrame可以作为正常的RDD操作,也可以被注册为临时表. 1. 通用的Load/Save函数 默认的数据源适用所有操作(可以用spark.sql.sources.default设置默认值) 之后,我们就可以使用hadoop fs -ls /user/hadoopuser/在此目录下找到namesAndFavColors.parquet文件. 手动指定数据源选项 我们可以手动指定数据源

DataFrame编程模型初谈与Spark SQL

Spark SQL在Spark内核基础上提供了对结构化数据的处理,在Spark1.3版本中,Spark SQL不仅可以作为分布式的SQL查询引擎,还引入了新的DataFrame编程模型. 在Spark1.3版本中,Spark SQL不再是Alpha版本,除了提供更好的SQL标准兼容之外,还引进了新的组件DataFrame.同时,Spark SQL数据源API也实现了与新组件DataFrame的交互,允许用户直接通过Hive表.Parquet文件以及一些其他数据源生成DataFrame.用户可以在

Spark 学习笔记:(三)Spark SQL

参考:https://spark.apache.org/docs/latest/sql-programming-guide.html#overview http://www.csdn.net/article/2015-04-03/2824407 Spark SQL is a Spark module for structured data processing. It provides a programming abstraction called DataFrames and can als