`

spark sql基本使用方法介绍

阅读更多

spark中可以通过spark sql 直接查询hive或impala中的数据,

 

一、启动方法

/data/spark-1.4.0-bin-cdh4/bin/spark-sql --master spark://master:7077 --total-executor-cores 10  --executor-memory 1g --executor-cores  2

 

注:/data/spark-1.4.0-bin-cdh4/为spark的安装路径

 

/data/spark-1.4.0-bin-cdh4/bin/spark-sql –help 查看启动选项

 

--master MASTER_URL           指定master url

--executor-memory MEM          每个executor的内存,默认为1G

--total-executor-cores NUM       所有executor的总核数

-e <quoted-query-string>           直接执行查询SQL

 

-f <filename>                              以文件方式批量执行SQL

 

二、Spark sql对hive支持的功能

 

1、查询语句:SELECT GROUP BY ORDER BY CLUSTER BY SORT BY

2、hive操作运算:

     1) 关系运算:= ==, <>, <, >, >=, <=

     2) 算术运算:+, -, *, /, %

     3) 逻辑运算:AND, &&, OR, ||

     4) 复杂的数据结构

     5) 数学函数:(sign, ln, cos, etc)

     6) 字符串函数:

3、 UDF

4、 UDAF

 

5、 用户定义的序列化格式

6、join操作:JOIN     {LEFT|RIGHT|FULL} OUTER JOIN     LEFT SEMI JOIN    CROSS JOIN

7、 unions操作:

8、 子查询: SELECT col FROM ( SELECT a + b AS col from t1) t2

9、Sampling 

10、 Explain

11、  分区表

12、 视图

13、  hive ddl功能:CREATE TABLE、CREATE TABLE AS SELECT、ALTER TABLE     

 

14、 支持的数据类型:TINYINT  SMALLINT INT BIGINT BOOLEAN FLOAT DOUBLE STRING BINARY TIMESTAMPDATE  ARRAY MAP STRUCT

 

 

三、Spark sql 在客户端编程方式进行查询数据

1、启动spark-shell

./spark-shell --master spark://master:7077 --total-executor-cores 10  --executor-memory 1g  --executor-cores  2

2、编写程序

val sqlContext = new org.apache.spark.sql.SQLContext(sc)

val df = sqlContext.read.json("../examples/src/main/resources/people.json")

查看所有数据:df.show()

查看表结构:df.printSchema()

只看name列:df.select("name").show()

对数据运算:df.select(df("name"), df("age") + 1).show()

过滤数据:df.filter(df("age") > 21).show()

 

分组统计:df.groupBy("age").count().show()

 

1、查询txt数据

import sqlContext.implicits._

case class Person(name: String, age: Int)

val people = sc.textFile("../examples/src/main/resources/people.txt").map(_.split(",")).map(p => Person(p(0), p(1).trim.toInt)).toDF()

people.registerTempTable("people")

val teenagers = sqlContext.sql("SELECT name, age FROM people WHERE age >= 13 AND age <= 19")

2、parquet文件

val df = sqlContext.read.load("../examples/src/main/resources/users.parquet")

3、hdfs文件

 

val df = sqlContext.read.load("hdfs://namenode.hadoop:9000/user/hive/warehouse/spark_test.db/test_parquet/part-r-00001.gz.parquet")

4、保存查询结果数据

val df = sqlContext.read.load("../examples/src/main/resources/users.parquet")

 

df.select("name", "favorite_color").write.save("namesAndFavColors.parquet“)

 

四、Spark sql性能调优

 

缓存数据表:sqlContext.cacheTable("tableName")

 

取消缓存表:sqlContext.uncacheTable("tableName")

 

 

spark.sql.inMemoryColumnarStorage.compressedtrue 当设置为true时,Spark SQL将为基于数据统计信息的每列自动选择一个压缩算法。

spark.sql.inMemoryColumnarStorage.batchSize 10000 柱状缓存的批数据大小。更大的批数据可以提高内存的利用率以及压缩效率,但有OOMs的风险

 

1
0
分享到:
评论

相关推荐

    Hadoop原理与技术SparkSQL操作实验

    (1)通过实验掌握 Spark SQL 的基本编程方法; (2)熟悉 RDD 到 DataFrame 的转化方法; (3)熟悉利用 Spark SQL 管理来自不同数据源的数据。 (4)java程序实现SparkSQL 二、实验环境 Windows 10 VMware ...

    Spark SQL学习笔记

    介绍了spark sql的简单案例,和基本的语句命令,spark的基本组成等。

    Spark 2.0.2 Spark 2.2 中文文档 本资源为网页,不是PDF

    使用 Java / Scala 运行 spark Jobs 单元测试 Spark 1.0 版本前的应用程序迁移 下一步 Spark Streaming Spark Streaming 概述 一个简单的示例 基本概念 依赖 初始化 StreamingContext Discretized ...

    spark介绍及分析.docx

    - RDD是Spark的基本抽象,代表一个不可变、可分区、可并行计算的数据集。RDD可以在集群上进行分布式计算。 2. **数据流处理:** - Spark 提供了弹性分布式数据流(DStream)用于实时数据处理。它是以微批处理的...

    大数据Spark纯净版安装包,用于快速集成Hive on Spark

    该安装包通常包含Spark的核心组件,如Spark Core、Spark SQL、Spark Streaming等,以及一些基本的工具和库。用户可以根据自己的需求选择合适的安装方式,例如通过二进制文件安装、通过包管理器安装或者通过源代码...

    Spark机器学习第1课.Spark介绍

    课时1:Spark介绍 课时2:Spark2集群安装 课时3:Spark RDD操作 课时4:SparkRDD原理剖析 课时5:Spark2sql从mysql中导入 课时6:Spark1.6.2sql与mysql数据交互 课时7:SparkSQL java操作mysql数据 课时8:Spark...

    Spark机器学习视频第10课.最终获取用户的收藏以及订单转换率

    课时1:Spark介绍 课时2:Spark2集群安装 课时3:Spark RDD操作 课时4:SparkRDD原理剖析 课时5:Spark2sql从mysql中导入 课时6:Spark1.6.2sql与mysql数据交互 课时7:SparkSQL java操作mysql数据 课时8:Spark...

    Spark机器学习视频第4课.SparkRDD原理剖析

    课时1:Spark介绍 课时2:Spark2集群安装 课时3:Spark RDD操作 课时4:SparkRDD原理剖析 课时5:Spark2sql从mysql中导入 课时6:Spark1.6.2sql与mysql数据交互 课时7:SparkSQL java操作mysql数据 课时8:Spark...

    Spark 编程基础(Scala 版)-机房上机实验指南

    Scala语言基础:由于Spark最初是使用Scala开发的,本书将详细介绍Scala的基础知识,包括语法、数据类型、控制结构、函数式编程等。 Spark与Scala的集成:展示如何在Scala环境下搭建Spark开发环境,包括安装、配置...

    spark 高级数据分析 高清 书签

    , 本书分为三篇:, 准备篇(第1~2章),介绍了Spark的环境搭建、设计理念与基本架构,帮助读者了解一些背景知识。, 核心设计篇(第3~7章),着重讲解SparkContext的初始化、存储体系、任务提交与执行、计算引擎及...

    Spark机器学习视频第2课.Spark2集群安装

    课时1:Spark介绍 课时2:Spark2集群安装 课时3:Spark RDD操作 课时4:SparkRDD原理剖析 课时5:Spark2sql从mysql中导入 课时6:Spark1.6.2sql与mysql数据交互 课时7:SparkSQL java操作mysql数据 课时8:Spark...

    bigtable-sql基本使用1

    1、解压包2、运行3、可视化界面配置3.1 默认driver驱动信息查看驱动,默认有3个驱动可用,hive和impala,spark的jdbc驱动包和drive

    深入理解Spark 核心思想与源码分析

    , 本书分为三篇:, 准备篇(第1~2章),介绍了Spark的环境搭建、设计理念与基本架构,帮助读者了解一些背景知识。, 核心设计篇(第3~7章),着重讲解SparkContext的初始化、存储体系、任务提交与执行、计算引擎及...

    基于python3使用spark的统计分析,涵盖spark的几大模块+源代码+文档说明

    1.spark_core:spark的基本操作,统计、wordcount、TopN等,数据主要来自英文新闻网站和自己随机构造的数据 2.spark_mllib:针对spark mllib里面机器学习算法的使用做了demo及说明,数据集来自spark2.3.2安装包里面...

    spark-daria:基本的Spark扩展和辅助方法:sparkles::astonished_face:

    Spark助手方法可最大化开发人员的生产力。 CI: 代码质量: 设置 从Maven获取JAR文件。 // Spark 3 libraryDependencies + = " com.github.mrpowers " %% " spark-daria " % " 1.0.0 " // Spark 2 ...

    SparkSql和DataFrame实战.docx

    Spark SQL的一个用途是执行使用基本SQL语法或HiveQL编写的SQL查询。Spark SQL还可以用于从现有的Hive安装中读取数据。有关如何配置此功能的更多信息,请参考Hive表格部分。当从另一种编程语言中运行SQL时,结果将...

    第16章 Spark

    内容提要:本章首先简单介绍Spark与Scala编程语言,接着分析Spark与Hadoop的区别,认识...然后讲解了Spark的生态系统和架构设计,并介绍了Spark SQL以及Spark的部署和应用方式;最后介绍Spark的安装与基本的编程实践。

    dt-sql-parser:使用antlr4构建的BigData SQL解析器

    dt-sql-parser English |dt-sql-parser是使用构建的SQL Parser项目,主要用于BigData域。 生成了基本的Parser,Visitor和Listener,因此很容易完成语法验证, tokenizer ,遍历AST等功能。 此外,它提供了一些辅助...

    基于Spark的实时推荐系统,使用MovieLens作为测试数据集.zip

    通过学习Spark,我了解了其基本概念和核心组件,如RDD(弹性分布式数据集)、Spark SQL、Spark Streaming和MLlib等。我学会了使用Spark编写分布式的数据处理程序,并通过调优技巧提高了程序的性能。在实践过程中,我...

Global site tag (gtag.js) - Google Analytics