Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Spark Sql系统入门4:spark应用程序中使用spark sql

Spark Sql系统入门4:spark应用程序中使用spark sql

作者头像
用户1410343
发布于 2018-03-26 07:28:41
发布于 2018-03-26 07:28:41
1.5K00
代码可运行
举报
文章被收录于专栏:about云about云
运行总次数:0
代码可运行

问题导读 1.你认为如何初始化spark sql? 2.不同的语言,实现方式都是什么? 3.spark sql语句如何实现在应用程序中使用? 为了使用spark sql,我们构建HiveContext (或则SQLContext 那些想要的精简版)基于我们的SparkContext.这个context 提供额外的函数为查询和整合spark sql数据。使用HiveContext,我们构建SchemaRDDs.这代表我们机构化数据,和操作他们使用sql或则正常的rdd操作如map().

初始化spark sql 为了开始spark sql,我们需要添加一些imports 到我们程序。如下面例子1 例子1Scala SQL imports

[Scala] 纯文本查看 复制代码

?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Import Spark SQL
import org.apache.spark.sql.hive.HiveContext
// Or if you can't have the hive dependencies
import org.apache.spark.sql.SQLContext

Scala用户注意,我们不使用 import HiveContext._,像我们这样做SparkContext,获取访问implicits.这些implicits用来转换rdds,带着需要的type信息到spark sql的序列化rdds为查询。相反,一旦我们有了结构化HiveContext实例化,我们可以导入 implicits 在例子2中。导入JavaPython在例子3和4中。例子2Scala SQL imports

[Scala] 纯文本查看 复制代码

?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Create a Spark SQL HiveContext
val hiveCtx = ...
// Import the implicit conversions
import hiveCtx._

例子3Java SQL imports

[Java] 纯文本查看 复制代码

?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// Import Spark SQL
import org.apache.spark.sql.hive.HiveContext;
// Or if you can't have the hive dependencies
import org.apache.spark.sql.SQLContext;
// Import the JavaSchemaRDD
import org.apache.spark.sql.SchemaRDD;
import org.apache.spark.sql.Row;

例子4Python SQL imports

[Python] 纯文本查看 复制代码

?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# Import Spark SQL
from pyspark.sql import HiveContext, Row
# Or if you can't include the hive requirements
from pyspark.sql import SQLContext, Row

一旦我们添加我们的imports,我们需要创建HiveContext,或则SQLContext,如果我们引入Hive依赖(查看例子5和6)。这两个类都需要运行spark。 例子5:使用Scala结构化sql context

[Scala] 纯文本查看 复制代码

?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
val sc = new SparkContext(...)
val hiveCtx = new HiveContext(sc)

例子6:使用java结构化sql context

[Java] 纯文本查看 复制代码

?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
JavaSparkContext ctx = 
new JavaSparkContext(...);
SQLContext sqlCtx = 
new HiveContext(ctx);

例子7:使用python结构化sql context

[Python] 纯文本查看 复制代码

?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
hiveCtx = HiveContext(sc)

现在我们有了HiveContext 或则SQLContext,我们准备加载数据和查询。 基本查询例子 为了对一个表查询,我们调用HiveContext或则SQLContext的sql()函数.第一个事情,我们需要告诉spark sql关于一些数据的查询。在这种情况下,我们load Twitter数据【json格式】,和给它一个name,注册为 “临时表”,因此我们可以使用sql查询。 例子8使用Scala加载和查询tweets

[Scala] 纯文本查看 复制代码

?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
val input = hiveCtx.jsonFile(inputFile)
// Register the input schema RDD
input.registerTempTable("tweets")
// Select tweets based on the retweetCount
val topTweets = hiveCtx.sql("SELECT text, 
retweetCount FROM
tweets ORDER BY retweetCount LIMIT 10")

例子9使用Java加载和查询tweets

[Java] 纯文本查看 复制代码

?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SchemaRDD input = hiveCtx.
jsonFile(inputFile);
// Register the input schema RDD
input.registerTempTable("tweets");
// Select tweets based on the retweetCount
SchemaRDD topTweets = hiveCtx.
sql("SELECT text, 
retweetCount FROM
tweets ORDER BY retweetCount LIMIT 10");

例子10使用Python加载和查询tweets

[Python] 纯文本查看 复制代码

?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
input = hiveCtx.jsonFile(inputFile)
# Register the input schema RDD
input.registerTempTable("tweets")
# Select tweets based on the retweetCount
topTweets = hiveCtx.sql("""SELECT text, 
retweetCount FROM
tweets ORDER BY retweetCount LIMIT 10""")

如果你已经安装hive,并且复制hive-site.xml文件到$SPARK_HOME/conf,你也可以运行hiveCtx.sql 查询已存在的hive表。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2017-02-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 about云 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spark1.0新特性-->Spark SQL
Spark1.0出来了,变化还是挺大的,文档比以前齐全了,RDD支持的操作比以前多了一些,Spark on yarn功能我居然跑通了。但是最最重要的就是多了一个Spark SQL的功能,它能对RDD进行Sql操作,目前它只是一个alpha版本,喜欢尝鲜的同志们进来看看吧,下面是它的官网的翻译。 Spark SQL是支持在Spark中使用Sql、HiveSql、Scaca中的关系型查询表达式。它的核心组件是一个新增的RDD类型SchemaRDD,它把行对象用一个Schema来描述行里面的所有列的数据类型,它就
岑玉海
2018/02/28
8250
Spark SQL | Spark,从入门到精通
欢迎阅读美图数据技术团队的「Spark,从入门到精通」系列文章,本系列文章将由浅入深为大家介绍 Spark,从框架入门到底层架构的实现,相信总有一种姿势适合你。
美图数据技术团队
2019/04/19
2.1K0
Spark SQL | Spark,从入门到精通
Spark学习之Spark SQL(8)
本文介绍了Spark SQL的功能和其与Spark DataFrame的交互,包括读取结构化数据、支持SQL查询、支持自定义函数等。同时,还提供了几个基本的查询示例和用户自定义函数的示例。
王小雷
2018/01/02
1.2K0
Spark RDDRelation
注意 这里声明的是 sqlContext = new SQLContext(sc)  如果要存成hive 表 需用hivecontext.
用户3003813
2018/09/06
3620
Spark RDDRelation
Apache Spark快速入门
https://www.iteblog.com/archives/1408.html 一、 为什么要选择Apache Spark 当前,我们正处在一个“大数据"的时代,每时每刻,都有各种类型的数据被生产。而在此紫外,数据增幅的速度也在显著增加。从广义上看,这些数据包含交易数据、社交媒体内容(比如文本、图像和视频)以及传感器数据。那么,为什么要在这些内容上投入如此多精力,其原因无非就是从海量数据中提取洞见可以对生活和生产实践进行很好的指导。   在几年前,只有少部分公司拥有足够的技术力量和资金去储存和挖掘大
Albert陈凯
2018/04/04
1.4K0
Apache Spark快速入门
大数据随记 —— DataFrame 与 RDD 之间的相互转换
在 Spark SQL 中有两种方式可以在 DataFrame 和 RDD 中进行转换:
繁依Fanyi
2023/05/07
1.2K0
大数据随记 —— DataFrame 与 RDD 之间的相互转换
Spark代码调优(一)
import org.apache.spark.sql.{DataFrame, Row, SQLContext}
用户3003813
2018/09/06
1.9K0
Spark代码调优(一)
Hive架构及Hive On Spark
(1)Table:每个表都对应在HDFS中的目录下,数据是经过序列化后存储在该目录中。同时Hive也支持表中的数据存储在其他类型的文件系统中,如NFS或本地文件系统。
用户3003813
2018/09/06
2.2K0
Hive架构及Hive On Spark
Spark SQL发展史
Spark 1.0版本开始,推出了Spark SQL。其实最早使用的,都是Hadoop自己的Hive查询引擎;但是后来Spark提供了Shark;再后来Shark被淘汰,推出了Spark SQL。Shark的性能比Hive就要高出一个数量级,而Spark SQL的性能又比Shark高出一个数量级。
编程那点事
2023/02/25
6370
【Spark研究】用Apache Spark进行大数据处理第二部分:Spark SQL
在Apache Spark文章系列的前一篇文章中,我们学习了什么是Apache Spark框架,以及如何用该框架帮助组织处理大数据处理分析的需求。 Spark SQL,作为Apache Spark大数据框架的一部分,主要用于结构化数据处理和对Spark数据执行类SQL的查询。通过Spark SQL,可以针对不同格式的数据执行ETL操作(如JSON,Parquet,数据库)然后完成特定的查询操作。 在这一文章系列的第二篇中,我们将讨论Spark SQL库,如何使用Spark SQL库对存储在批处理文件、JSO
陆勤_数据人网
2018/02/27
3.5K0
Spark SQL从入门到精通
熟悉spark sql的都知道,spark sql是从shark发展而来。Shark为了实现Hive兼容,在HQL方面重用了Hive中HQL的解析、逻辑执行计划翻译、执行计划优化等逻辑,可以近似认为仅将物理执行计划从MR作业替换成了Spark作业(辅以内存列式存储等各种和Hive关系不大的优化);
Spark学习技巧
2019/05/09
1.2K0
Spark SQL从入门到精通
【数据科学】数据科学中的 Spark 入门
本文由 伯乐在线 - zhique 翻译,xxmen 校稿。未经许可,禁止转载! 英文出处:Ram Sriharsha。欢迎加入翻译组。 Apache Spark 为数据科学提供了许多有价值的工具。随着 Apache Spark 1.3.1 技术预览版的发布,强大的 Data Frame API 也可以在 HDP 上使用数据科学家使用数据挖掘和可视化来帮助构造问题架构并对学习进行微调。Apache Zeppelin 正好能够帮他们做到这些。 Zeppelin 是一个基于 Web 的 notebook 服务器
陆勤_数据人网
2018/02/26
1.6K0
【数据科学】数据科学中的 Spark 入门
原 SparkSQL语法及API
SparkSQL语法及API 一、SparkSql基础语法 1、通过方法来使用 1.查询 df.select("id","name").show(); 1>带条件的查询 df.select($"id",$"name").where($"name" === "bbb").show() 2>排序查询     orderBy/sort($"列名")  升序排列     orderBy/sort($"列名".desc)  降序排列     orderBy/sort($"列1" , $"列2".desc) 按两列排序
云飞扬
2018/05/17
1.6K0
Spark SQL 快速入门系列(2) | SparkSession与DataFrame的简单介绍
  在老的版本中,SparkSQL 提供两种 SQL 查询起始点:一个叫SQLContext,用于Spark 自己提供的 SQL 查询;一个叫 HiveContext,用于连接 Hive 的查询。
不温卜火
2020/10/28
2.3K0
Spark SQL 快速入门系列(2) | SparkSession与DataFrame的简单介绍
spark零基础学习线路指导
问题导读 1.你认为spark该如何入门? 2.你认为spark入门编程需要哪些步骤? 3.本文介绍了spark哪些编程知识? spark学习一般都具有hadoop基础,所以学习起来更
用户1410343
2018/03/26
2.1K0
spark零基础学习线路指导
【Spark篇】---SparkSQL中自定义UDF和UDAF,开窗函数的应用
SparkSQL中的UDF相当于是1进1出,UDAF相当于是多进一出,类似于聚合函数。
LhWorld哥陪你聊算法
2018/09/13
1.9K0
【Spark篇】---SparkSQL中自定义UDF和UDAF,开窗函数的应用
spark集成hbase与hive数据转换与代码练习
  帮一个朋友写个样例,顺便练手啦~一直在做平台的各种事,但是代码后续还要精进啊。。。
用户3003813
2018/09/06
5250
spark集成hbase与hive数据转换与代码练习
spark学习笔记:spark sql
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
MachineLP
2019/09/19
7690
spark2的SparkSession思考与总结2:SparkSession有哪些函数及作用是什么
问题导读 1.spark SparkSession包含哪些函数? 2.创建DataFrame有哪些函数? 3.创建DataSet有哪些函数? 上一篇spark2:SparkSession思考与总
用户1410343
2018/03/26
3.8K0
Spark SQL中对Json支持的详细介绍
Spark SQL中对Json支持的详细介绍 在这篇文章中,我将介绍一下Spark SQL对Json的支持,这个特性是Databricks的开发者们的努力结果,它的目的就是在Spark中使得查询和创建JSON数据变得非常地简单。随着WEB和手机应用的流行,JSON格式的数据已经是WEB Service API之间通信以及数据的长期保存的事实上的标准格式了。但是使用现有的工具,用户常常需要开发出复杂的程序来读写分析系统中的JSON数据集。而Spark SQL中对JSON数据的支持极大地简化了使用JSON数据的
用户1289394
2018/02/27
4.7K0
相关推荐
Spark1.0新特性-->Spark SQL
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验