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)通过实验掌握 Spark SQL 的基本编程方法; (2)熟悉 RDD 到 DataFrame 的转化方法; (3)熟悉利用 Spark SQL 管理来自不同数据源的数据。 (4)java程序实现SparkSQL 二、实验环境 Windows 10 VMware ...
介绍了spark sql的简单案例,和基本的语句命令,spark的基本组成等。
使用 Java / Scala 运行 spark Jobs 单元测试 Spark 1.0 版本前的应用程序迁移 下一步 Spark Streaming Spark Streaming 概述 一个简单的示例 基本概念 依赖 初始化 StreamingContext Discretized ...
- RDD是Spark的基本抽象,代表一个不可变、可分区、可并行计算的数据集。RDD可以在集群上进行分布式计算。 2. **数据流处理:** - Spark 提供了弹性分布式数据流(DStream)用于实时数据处理。它是以微批处理的...
该安装包通常包含Spark的核心组件,如Spark Core、Spark SQL、Spark Streaming等,以及一些基本的工具和库。用户可以根据自己的需求选择合适的安装方式,例如通过二进制文件安装、通过包管理器安装或者通过源代码...
课时1:Spark介绍 课时2:Spark2集群安装 课时3:Spark RDD操作 课时4:SparkRDD原理剖析 课时5:Spark2sql从mysql中导入 课时6:Spark1.6.2sql与mysql数据交互 课时7:SparkSQL java操作mysql数据 课时8:Spark...
课时1:Spark介绍 课时2:Spark2集群安装 课时3:Spark RDD操作 课时4:SparkRDD原理剖析 课时5:Spark2sql从mysql中导入 课时6:Spark1.6.2sql与mysql数据交互 课时7:SparkSQL java操作mysql数据 课时8:Spark...
课时1:Spark介绍 课时2:Spark2集群安装 课时3:Spark RDD操作 课时4:SparkRDD原理剖析 课时5:Spark2sql从mysql中导入 课时6:Spark1.6.2sql与mysql数据交互 课时7:SparkSQL java操作mysql数据 课时8:Spark...
Scala语言基础:由于Spark最初是使用Scala开发的,本书将详细介绍Scala的基础知识,包括语法、数据类型、控制结构、函数式编程等。 Spark与Scala的集成:展示如何在Scala环境下搭建Spark开发环境,包括安装、配置...
, 本书分为三篇:, 准备篇(第1~2章),介绍了Spark的环境搭建、设计理念与基本架构,帮助读者了解一些背景知识。, 核心设计篇(第3~7章),着重讲解SparkContext的初始化、存储体系、任务提交与执行、计算引擎及...
课时1:Spark介绍 课时2:Spark2集群安装 课时3:Spark RDD操作 课时4:SparkRDD原理剖析 课时5:Spark2sql从mysql中导入 课时6:Spark1.6.2sql与mysql数据交互 课时7:SparkSQL java操作mysql数据 课时8:Spark...
1、解压包2、运行3、可视化界面配置3.1 默认driver驱动信息查看驱动,默认有3个驱动可用,hive和impala,spark的jdbc驱动包和drive
, 本书分为三篇:, 准备篇(第1~2章),介绍了Spark的环境搭建、设计理念与基本架构,帮助读者了解一些背景知识。, 核心设计篇(第3~7章),着重讲解SparkContext的初始化、存储体系、任务提交与执行、计算引擎及...
1.spark_core:spark的基本操作,统计、wordcount、TopN等,数据主要来自英文新闻网站和自己随机构造的数据 2.spark_mllib:针对spark mllib里面机器学习算法的使用做了demo及说明,数据集来自spark2.3.2安装包里面...
Spark助手方法可最大化开发人员的生产力。 CI: 代码质量: 设置 从Maven获取JAR文件。 // Spark 3 libraryDependencies + = " com.github.mrpowers " %% " spark-daria " % " 1.0.0 " // Spark 2 ...
Spark SQL的一个用途是执行使用基本SQL语法或HiveQL编写的SQL查询。Spark SQL还可以用于从现有的Hive安装中读取数据。有关如何配置此功能的更多信息,请参考Hive表格部分。当从另一种编程语言中运行SQL时,结果将...
内容提要:本章首先简单介绍Spark与Scala编程语言,接着分析Spark与Hadoop的区别,认识...然后讲解了Spark的生态系统和架构设计,并介绍了Spark SQL以及Spark的部署和应用方式;最后介绍Spark的安装与基本的编程实践。
dt-sql-parser English |dt-sql-parser是使用构建的SQL Parser项目,主要用于BigData域。 生成了基本的Parser,Visitor和Listener,因此很容易完成语法验证, tokenizer ,遍历AST等功能。 此外,它提供了一些辅助...
通过学习Spark,我了解了其基本概念和核心组件,如RDD(弹性分布式数据集)、Spark SQL、Spark Streaming和MLlib等。我学会了使用Spark编写分布式的数据处理程序,并通过调优技巧提高了程序的性能。在实践过程中,我...