8.Spark SQL

作者: 全能程序猿 | 来源:发表于2017-07-23 15:19 被阅读41次

Spark SQL


1 Why Apache Spark
2 关于Apache Spark
3 如何安装Apache Spark
4 Apache Spark的工作原理
5 spark弹性分布式数据集
6 RDD持久性
7 spark共享变量
8 Spark SQL
9 Spark Streaming

原文链接:http://blogxinxiucan.sh1.newtouch.com/2017/07/23/Spark-SQL/

Spark SQL提供了一种方便的方法,使用Spark Engine使用名为SchemaRDD的特殊类型的RDD,在大型数据集上运行交互式查询。SchemaRDD可以从现有的RDD或其他外部数据格式(如Parquet文件,JSON数据)或通过在Hive上运行HQL创建。SchemaRDD与RDBMS中的表类似。一旦数据在SchemaRDD中,Spark引擎就会将其与批量和流式使用情况相统一。Spark SQL提供两种类型的上下文:扩展SparkContext功能的SQLContext和HiveContext。

SQLContext提供对简单SQL解析器的访问,而HiveContext提供对HiveQL解析器的访问。HiveContext使企业能够利用其现有的Hive基础架构。

让我们来看一个使用SQLContext的简单例子。

说我们有以下'|' 包含客户数据的分隔文件:

John Smith|38|M|201 East Heading Way #2203,Irving, TX,75063 Liana Dole|22|F|1023 West Feeder Rd, Plano,TX,75093 Craig Wolf|34|M|75942 Border Trail,Fort Worth,TX,75108 John Ledger|28|M|203 Galaxy Way,Paris, TX,75461 Joe Graham|40|M|5023 Silicon Rd,London,TX,76854

定义Scala案例类来表示每一行:
case class Customer(name:String,age:Int,gender:String,address: String)

以下代码片段显示如何使用SparkContext创建SQLContext,读取输入文件,将每行转换为SchemaRDD中的记录,然后在简单SQL中查询以查找30岁以下的男性消费者:

val sparkConf = new SparkConf().setAppName(“Customers”)
val sc = new SparkContext(sparkConf)
val sqlContext = new SQLContext(sc)
val r = sc.textFile(“/Users/akuntamukkala/temp/customers.txt”) val records = r.map(_.split(‘|’))
val c = records.map(r=>Customer(r(0),r(1).trim.toInt,r(2),r(3))) c.registerAsTable(“customers”)
sqlContext.sql(“select * from customers where gender=’M’ and age < 30”).collect().foreach(println)
Result:[John Ledger,28,M,203 Galaxy Way,Paris, TX,75461]

有关使用SQL&HiveQL的更实际的示例,请参考以下链接:

https://spark.apache.org/docs/latest/sql-programming-guide.html

https://databricks-training.s3.amazonaws.com/data-exploration-using-spark-sql.html


公众号:it全能程序猿


相关文章

  • 8.Spark SQL

    Spark SQL 1 Why Apache Spark2 关于Apache Spark3 如何安装Apache ...

  • 8.Spark Sql

    定义 SparkSql是Apache Spark大数据框架的一部分,主要用于处理结构化数据和对Spark数据执行类...

  • 8.spark core之读写数据

      spark支持多种数据源,从总体来分分为两大部分:文件系统和数据库。 文件系统   文件系统主要有本地文件系统...

  • 数据库学习线路图

    SQL 语法教程 SQL 教程SQL 简介SQL 语法SQL Select选择SQL SELECT DISTINC...

  • SQL基础及元数据获取(数据类型,表的属性)

    1、SQL基础应用 ①.SQL的介绍SQL标准:SQL-92、SQL-99SQL_MODE:都是为了保证SQL语句...

  • Golang标准库——database

    sql sql/driver sql sql包提供了保证SQL或类SQL数据库的泛用接口。使用sql包时必须注入(...

  • SQL 语法大全

    SQL 语法大全 标签(空格分隔): SQL DB2 SQL语法大全 SQL SELECT SQL SELECT ...

  • SQL语句

    SQL基础应用 SQL语句自动补全 SQL的介绍 SQL-92标准SQL-99标准 image SQL常用分类 表...

  • sql审核-避免离线sql导致的db集群故障

    关键词: sql审核、sql审批、sql检查、sql检测、sql执行 离线sql可能会导致的问题 首先,什么是离线...

  • SQL 笔记

    SQL 笔记 SQL 简介 SQL = Structured Query Language 总的来说,SQL语言定...

网友评论

    本文标题:8.Spark SQL

    本文链接:https://www.haomeiwen.com/subject/rvrmkxtx.html