SparkSQL(一)】的更多相关文章

这个大坑... .... 如题,在Windows的eclipse中编写SparkSQL代码时,编写如下代码时,一运行就抛出一堆空指针异常: // 首先还是创建SparkConf SparkConf conf = new SparkConf() .setMaster("local") .setAppName("HiveDataSource"); // 创建JavaSparkContext JavaSparkContext sc = new JavaSparkConte…
问:udf在sparksql 里面的作用是什么呢? 答:oracle的存储过程会有用到定义函数,那么现在udf就相当于一个在sparksql用到的函数定义: 第二个问题udf是怎么实现的呢? registerFunction(name, f,  returnType=StringType) name – name of the UDF f – python function returnType – a DataType object 首先我们从官网的例子去理解: >>> from py…
一,测试环境       1) 硬件环境完全相同:              包括:cpu/内存/网络/磁盘Io/机器数量等       2)软件环境:              相同数据              相同测试用例       3) 不同计算框架,其中spark-sql 都是基于yarn的       4)spark-sql executor内存总量不大于 hive使用内存峰值 二,不同框架在两个测试用例下的性能对比 1)bu_出租车需求数计算.sql   orc orc (spl…
由于我Spark采用的是Cloudera公司的CDH,并且安装的时候是在线自动安装和部署的集群.最近在学习SparkSQL,看到SparkSQL on HIVE.下面主要是介绍一下如何通过SparkSQL在读取HIVE的数据. (说明:如果不是采用CDH在线自动安装和部署的话,可能需要对源码进行编译,使它能够兼容HIVE. 编译的方式也很简单,只需要在Spark_SRC_home(源码的home目录下)执行如下命令: ./make-distribution.sh --tgz -Phadoop-2…
额,没忍住,想完全了解sparksql,毕竟一直在用嘛,想一次性搞清楚它,所以今天再多看点好了~ 曾几何时,有一个叫做shark的东西,它改了hive的源码...突然有一天,spark Sql突然出现,如下图: = =好了,不逗了,言归正传...那么一条sql传统数据库会是怎么解析的呢? 传统数据库的解析过程是按Rusult.Data Source.Operation的次序来解析的.传统数据库先将读入的SQL语句进行解析,分辨出SQL语句中哪些词是关键字(如select,from,where),…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .SparkSQL的发展历程 1.1 Hive and Shark SparkSQL的前身是Shark,给熟悉RDBMS但又不理解MapReduce的技术人员提供快速上手的工具,Hive应运而生,它是当时唯一运行在Hadoop上的SQL-on-Hadoop工具.但是MapReduce计算过程中大量的中间磁盘落地过程消耗了大量的I/O,降低的运行效率,为了提高SQL-on-Hadoop的效率,大量的S…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 1.1  运行环境说明 1.1.1 硬软件环境 线程,主频2.2G,10G内存 l  虚拟软件:VMware® Workstation 9.0.0 build-812388 l  虚拟机操作系统:CentOS6.5 64位,单核 l  虚拟机运行环境: Ø  JDK:1.7.0_55 64位 位) Ø  Scala:2.10.4 Ø  Spark:1.1.0(需要编译) Ø  Hive:0.13.1…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .运行环境说明 1.1 硬软件环境 线程,主频2.2G,10G内存 l  虚拟软件:VMware® Workstation 9.0.0 build-812388 l  虚拟机操作系统:CentOS 64位,单核 l  虚拟机运行环境: Ø  JDK:1.7.0_55 64位 位) Ø  Scala:2.10.4 Ø  Spark:1.1.0(需要编译) Ø  Hive:0.13.1 1.2 机器网络…
sparksql:http://www.cnblogs.com/shishanyuan/p/4723604.html?utm_source=tuicool spark on yarn :http://sofar.blog.51cto.com/353572/1352713/ http://database.51cto.com/art/201404/435630.htm spark on yarn 爬坑:http://zengzhaozheng.blog.51cto.com/8219051/1597…
最近项目中需要用到sparksql ,需要查询sql Date类型, 无奈,官方现阶段 1.6.0 还不支持Date类型,不过支持Timestamp类型,所以问题可以解决了. 1.解析 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date beginDate = null; Date endDate = null; try { beginDate = (Date) dateForm…
Spark-Sql版本升级对应的新特性汇总 SparkSQL的前身是Shark.由于Shark自身的不完善,2014年6月1日Reynold Xin宣布:停止对Shark的开发.SparkSQL抛弃原有Shark的代码,汲取了Shark的一些优点,如内存列存储(In-Memory Columnar Storage).Hive兼容性等,重新开发SparkSQL. Spark-1.1 :2014年9月11日,发布Spark1.1.0.Spark从1.0开始引入SparkSQL(Shark不再支持升级…
好久没有弄博客了... hive0.14 spark0.12 [hadoop@irs bin]$ ./spark-sql Spark assembly has been built with Hive, including Datanucleus jars on classpathException in thread "main" java.lang.RuntimeException: java.lang.NumberFormatException: For input string…
1:首先配置hive-site.xml <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:postgresql://192.168.56.103:5432/sparksql</value> </property> <property> <name>javax.jdo.option.Co…
一.概述 从1.3版本开始Spark SQL不再是测试版本,之前使用的SchemaRDD重命名为DataFrame,统一了Java和ScalaAPI. SparkSQL是Spark框架中处理结构化数据的部分,提供了一种DataFrames的概念,同时允许在Spark中执行以SQL,HiveQL或Scala表示的关系型查询语句. 就易用性而言,对比传统的MapReduceAPI,说Spark的RDD API有了数量级的飞跃并不为过.然而,对于没有MapReduce和函数式编程经验的新手来说,RDD…
SparkSQL是指整合了Hive的spark-sql cli, 本质上就是通过Hive访问HBase表,具体就是通过hive-hbase-handler, 具体配置参见:Hive(五):hive与hbase整合 目录: SparkSql 访问 hbase配置 测试验证 SparkSql 访问 hbase配置:  拷贝HBase的相关jar包到Spark节点上的$SPARK_HOME/lib目录下,清单如下: guava-.jar htrace-core--incubating.jar hbas…
1 概述(Overview) 2 DataFrames 2.1 入口:SQLContext(Starting Point: SQLContext) 2.2 创建DataFrames(Creating DataFrames) 2.3 DataFrame操作(DataFrame Operations) 2.4 运行SQL查询程序(Running SQL Queries Programmatically) 2.5 DataFrames与RDDs的相互转换(Interoperating with RDD…
一.由于具有多张宽表且字段较多,每个宽表数据大概为4000万条,根据业务逻辑拼接别名,并每张宽表的固定字段进行left join 拼接SQL.这样就能根据每个宽表的主列,根据每个宽表的不同字段关联出一张新的集合.由于下来要进行分页查询,如果要使用SparkSQL进行分页查询,需要增加序号列,那么就在刚才的Sql之前增加一句 create table tableName as SELECT  ROW_NUMBER() OVER() as id,* from (拼接的SQL) 就可创建一张带自增序列…
SparkSQL继承自Hive的接口,由于hive是基于MapReduce进行计算的,在计算过程中大量的中间数据要落地于磁盘,从而消耗了大量的I/O,降低了运行的效率,从而基于内存运算的SparkSQL应运而生. 首先说下传统数据库的解析,传统数据库的解析过程是按Rusult.Data Source.Operation的次序来解析的.传统数据库先将读入的SQL语句进行解析,分辨出SQL语句中哪些词是关键字(如select,from,where),哪些是表达式,哪些是Projection,哪些是D…
Spark是一个通用的大规模数据快速处理引擎.可以简单理解为Spark就是一个大数据分布式处理框架.基于内存计算的Spark的计算速度要比Hadoop的MapReduce快上100倍以上,基于磁盘的计算速度也快于10倍以上.Spark运行在Hadoop第二代的yarn集群管理之上,可以轻松读取Hadoop的任何数据.能够读取HBase.HDFS等Hadoop的数据源. 从Spark 1.0版本起,Spark开始支持Spark SQL,它最主要的用途之一就是能够直接从Spark平台上面获取数据.并…
1.in 不支持子查询 eg. select * from src where key in(select key from test); 支持查询个数 eg. select * from src where key in(1,2,3,4,5); in 40000个 耗时25.766秒 in 80000个 耗时78.827秒 2.union all/union 不支持顶层的union all eg. select key from src UNION ALL select key from te…
转载自:http://lxw1234.com/archives/2015/08/448.htm 如果你已经有一个正常运行的Hadoop Yarn环境,那么只需要下载相应版本的Spark,解压之后做为Spark客户端即可. 需要配置Yarn的配置文件目录,export HADOOP_CONF_DIR=/etc/hadoop/conf 这个可以配置在spark-env.sh中. 运行命令: cd $SPARK_HOME/bin ./spark-shell \ --master yarn-client…
转载自:http://lxw1234.com/archives/2015/08/466.htm 本文将介绍以yarn-cluster模式运行SparkSQL应用程序,访问和操作Hive中的表,这个和在Yarn上运行普通的Spark应用程序有所不同,重点是需要将Hive的依赖包以及配置文件传递到Driver和Executor上,因为在yarn-cluster模式下,Driver和Executor都是由Yarn和分配的. 下面的代码完成了以下功能: 1. 在Hive的数据库liuxiaowen中,创…
将hive-site.xml拷贝到spark目录下conf文件夹 local模式 spark-sql --driver-class-path /usr/local/hive-1.2.1/lib/mysql-connector-java-5.1.31-bin.jar 或者 需要在$SPARK_HOME/conf/spark-env.sh中的SPARK_CLASSPATH添加jdbc驱动的jar包 export export SPARK_CLASSPATH=$SPARK_CLASSPATH:/usr…
在Spark1.2.0版本中是用parquet存储类型时注意事项: sql语句: select * from order_created_dynamic_partition_parquet; 在spark-sql中执行结果: [B@4621484a [B@3311163e 2014-05 [B@70ab973a [B@11559aa0 2014-05 [B@b1a8744 [B@7aa6870d 2014-05 [B@765e2d02 [B@20dd1b04 2014-05 [B@1418b47…
启动spark-sql执行sql时,在监控页面中看到该Application的Name是SparkSQL:hadoop000(其中hadoop000是测试机器的hostname),就有个想法,修改下该application的name,在spark-sql --help中看到--name NAME的参数设置,于是乎就在启动spark-sql时设置参数: spark-shell --name test 启动后发现该Application的Name还是SparkSQL:hadoop000,启动时指定的…
使用java开发一个helloworld级别UDF,打包成udf.jar,存放在/home/hadoop/lib下,代码如下: package com.luogankun.udf; import org.apache.hadoop.hive.ql.exec.UDF; public class HelloUDF extends UDF { public String evaluate(String str) { try { return "HelloWorld " + str; } ca…
Spark SQL CLI描述 Spark SQL CLI的引入使得在SparkSQL中通过hive metastore就可以直接对hive进行查询更加方便:当前版本中还不能使用Spark SQL CLI与ThriftServer进行交互. 使用Spark SQL CLI前需要注意: 1.将hive-site.xml配置文件拷贝到$SPARK_HOME/conf目录下: 2.需要在$SPARK_HOME/conf/spark-env.sh中的SPARK_CLASSPATH添加jdbc驱动的jar…
SparkSQL和Hive On Spark都是在Spark上实现SQL的解决方案.Spark早先有Shark项目用来实现SQL层,不过后来推翻重做了,就变成了SparkSQL.这是Spark官方Databricks的项目,Spark项目本身主推的SQL实现.Hive On Spark比SparkSQL稍晚.Hive原本是没有很好支持MapReduce之外的引擎的,而Hive On Tez项目让Hive得以支持和Spark近似的Planning结构(非MapReduce的DAG).所以在此基础上…
为了更方便的查询并产生报表, 需要使用shell脚本调用spark-sql spark/bin/spark-sql --master spark://host:7077 -f ${SQL_FILE} > ${OUT_FILE}…
准备json文件: cat /root/1.json {"name":"Michael"} {"name":"Andy", "age":30} {"name":"Justin", "age":19} 可以尝试传统方法: val people = sqlContext.read.json("file:///root/1.json"…