![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark
muyingmiao
这个作者很懒,什么都没留下…
展开
-
Spark对接Hive:整合Hive操作及函数
1.拷贝hive-site.xml文件到spark的conf目录下2.[hadoop@hadoop002 bin]$ ./spark-shell --master local[2] --jars ~/software/mysql-connector-java-5.1.47.jar 注意用5版本的mysql-connector-javascala> spark.sql("sh...原创 2020-03-12 22:48:08 · 853 阅读 · 0 评论 -
Spark sql 自定义读取数据源
通常在一个流式计算的主流程里,会用到很多映射数据,比较常见的是Text文档,但是文档读进来之后还要匹配相应的schema,本文通过自定义TextSource数据源,自动读取默认的Schema。DefaultSource.scalapackage com.wxx.bigdata.sql_custome_sourceimport org.apache.spark.sql.SQLContex...原创 2019-11-26 17:36:57 · 434 阅读 · 0 评论 -
Spark自定义UDAF函数(强类型-DSL语法)
1.继承Aggregator2.实现方法3.注册函数4.通过DataSet数据集获取结果package com.wxx.bigdata.sql03import org.apache.spark.sql.{Encoders, SparkSession}import org.apache.spark.sql.expressions.Aggregatorobject Custome...原创 2019-11-24 08:58:52 · 855 阅读 · 0 评论 -
Spark自定义UDAF函数(弱类型)
弱类型用户自定义聚合函数:通过继承UserDefinedAggregateFunction来实现用户自定义聚合函数。下面展示一个求平均年龄的自定义聚合函数1.extendsUserDefinedAggregateFunction2.实现方法3.spark.udf.register 注册函数package com.wxx.bigdata.sql03import org.apache...原创 2019-11-24 08:27:45 · 322 阅读 · 0 评论 -
Spark中累加器的使用和自定义简单的累加器
累加器的使用package com.wxx.bigdata.core06import org.apache.spark.{SparkConf, SparkContext}object AccumulatorAPP { def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setApp...原创 2019-11-23 10:03:09 · 370 阅读 · 0 评论 -
Spark的MySQL数据库连接
MySQL数据库连接支持通过Java JDBC访问关系型数据库。需要通过JdbcRDD进行,示例如下:(1)添加依赖<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version...原创 2019-11-23 09:34:34 · 176 阅读 · 0 评论 -
Spark action 算子
reduce(func)案例1. 作用:通过func函数聚集RDD中的所有元素,先聚合分区内数据,再聚合分区间数据。2. 需求:创建一个RDD,将所有元素聚合得到结果。(1)创建一个RDD[Int]scala> val rdd1 = sc.makeRDD(1 to 10,2)rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollect...原创 2019-11-22 17:21:32 · 119 阅读 · 0 评论 -
Spark Core 练习题01- 统计top3
样本如下:1516609143867 6 7 64 161516609143869 9 4 75 181516609143869 1 7 87 122. 需求:统计出每一个省份广告被点击次数的TOP3package com.wxx.bigdata.core01import org.apache.spark.{SparkConf, SparkContext}/** * ...原创 2019-11-22 16:38:15 · 733 阅读 · 0 评论 -
RDD,DataFrame和DataSet的共性和区别
RDD (Spark1.0) ->Dataframe(Spark1.3) -> Dataset(Spark1.6)共性1.RDD,dataFrame和DataSet都是spark平台下的分布式弹性数据集,为处理超大型数据提供便利2.三者都有惰性加载机制,在进行创建,转换如map方法时不会立即执行,只有在遇到action如foreach时,三者才会进行遍历计算。3.三者都会根据...原创 2019-11-11 15:48:31 · 308 阅读 · 0 评论 -
SparkSQL中 RDD,DF和DS之间的相互转换
类型之间的转换总结RDD、DataFrame、Dataset 三者有许多共性,有各自适用的场景常常需要在三者之间转换DataFrame/Dataset 转RDD:这个转换很简单val rdd1=testDF.rddval rdd2=testDS.rddRDD 转DataFrame:import spark.implicits._val testDF = rdd.map {l...原创 2019-11-07 21:19:32 · 2613 阅读 · 0 评论 -
Spark on Yarn的常见错误
1. 将spark作业提交到yarn上执行spark仅仅作为一个客户端./spark-submit \--class org.apache.spark.examples.SparkPi \--master yarn \ /home/hadoop/app/spark-2.4.4-bin-2.6.0-cdh5.15.1/examples/jars/spark-examples_2.11-...原创 2019-10-25 22:05:54 · 582 阅读 · 0 评论 -
Spark 内存管理
Spark官网对内存管理的介绍如下地址:http://spark.apache.org/docs/latest/tuning.html#determining-memory-consumption查看源码,内存管理的逻辑在MemoryManager.scalaSparkEnv.scala val useLegacyMemoryManager = conf.getBoolean("s...原创 2019-10-24 09:22:31 · 427 阅读 · 0 评论 -
Spark on YARN 模式启动后去HDFS上加载依赖包
1.在使用Spark on YARN模式时,发现作业提交缓慢通过官网描述:也就是说,:如果想要在yarn端(yarn的节点)访问spark的runtime jars,需要指定spark.yarn.archive 或者 spark.yarn.jars。如果都这两个参数都没有指定,spark就会把$SPARK_HOME/jars/所有的jar上传到分布式缓存中。这也是之前任务提交特别慢的原因。...原创 2019-10-18 18:21:50 · 1529 阅读 · 0 评论 -
Spark SQL 2.X 自定义udf
一、UDF介绍UDF(User Define Function),即用户自定义函数。几乎所有sql数据库的实现都为用户提供了扩展接口来增强sql语句的处理能力,这些扩展称之为UDXXX,即用户定义(User Define)的XXX,这个XXX可以是对单行操作的UDF,或者是对多行操作的UDAF,或者是UDTF,本次主要介绍UDF。UDF的UD表示用户定义,既然有用户定义,就会有系统内建(...原创 2019-11-07 21:32:46 · 741 阅读 · 0 评论 -
SparkSession、SparkContext、SQLContext和HiveContext之间的区别
SparkContext 是什么?驱动程序使用SparkContext与集群进行连接和通信,它可以帮助执行Spark任务,并与资源管理器(如YARN 或Mesos)进行协调。 使用SparkContext,可以访问其他上下文,比如SQLContext和HiveContext。 使用SparkContext,我们可以为Spark作业设置配置参数。如果您在spark-shell中,那么Spa...原创 2019-10-15 16:47:12 · 614 阅读 · 0 评论 -
Spark SQL 读取Hive数据报错:The specified datastore driver ("com.mysql.jdbc.Driver") was not found in the C
将Hive的配置文件拷贝到Spark中后,启动spark-shellscala> spark.sql("show databases").show报错如下org.datanucleus.store.rdbms.connectionpool.DatastoreDriverNotFoundException: The specified datastore driver ("com.mys...原创 2019-10-14 18:52:20 · 861 阅读 · 0 评论 -
spark特殊join算子,join时何时产生shuffle,何时不产生shuffle
1、 什么是宽窄依赖,宽依赖: 发生shuffle时,一定会产生宽依赖,宽依赖是一个RDD中的一个Partition被多个子Partition所依赖(一个父亲多有儿子),也就是说每一个父RDD的Partition中的数据,都可能传输一部分到下一个RDD的多个partition中,此时一定会发生shuffle窄依赖: 一个RDD中的一个 Partition最多 被一个 子 Partition...原创 2019-10-14 11:16:23 · 3216 阅读 · 2 评论 -
Spark History Server配置
为什么要使用Spark History Server在Spark安装成功后,无论是通过spark-submit工具还是通过Intellij IDEA提交任务,只要在Spark应用程序运行期间,都可以通过WebUI控制台页面来查看具体的运行细节,在浏览器中通过地址:http://<driver-node>:4040即可查看当前的运行状态。但是一旦应用程序运行结束,该Web界面也就失效了...原创 2019-10-12 18:41:03 · 296 阅读 · 0 评论 -
RDD编程模型和创建
1 编程模型在Spark 中,RDD 被表示为对象,通过对象上的方法调用来对RDD 进行转换。经过一系列的transformations 定义RDD 之后,就可以调用actions 触发RDD 的计算,action 可以是向应用程序返回结果(count, collect 等),或者是向存储系统保存数据saveAsTextFile 等)。在Spark 中,只有遇到action,才会执行RD...原创 2019-09-26 17:05:58 · 921 阅读 · 0 评论 -
基于CentOS6环境编译Spark-2.1.0源码
1 写在前面的话有些小伙伴可能会问:Spark官网不是已经提供了Spark针对不同版本的安装包了吗,我们为什么还需要对Spark源码进行编译呢?针对这个问题我们到Spark官网:spark.apache.org来看下,如下图所示:Spark官网的确是提供了一些Hadoop版本的Spark安装包,但是提供的这些是否能够满足我们的要求呢?答案肯定是否定的,根据本人近几年做Spark的开发...原创 2019-09-26 23:54:49 · 170 阅读 · 0 评论 -
Spark中RDD的sortBy排序的5种实现方法
在RDD,ortBy可以指定对键还是value进行排序,sortBy可以通过下面5中方式实现排序假如数据的格式如下,list中元素中分别为名称、单价、数量,字符之间用空格连接,要实现按照单价和数量降序val products = sc.parallelize(List("A 100 10","B 200 20","C 200 30","D 400 30"))1.通过Tuple方式,按照...原创 2019-09-27 18:31:07 · 9814 阅读 · 0 评论 -
Spark中的transformation算子介绍
transformation是得到一个新的RDD,方式很多,比如从数据源生成一个新的RDD,从RDD生成一个新的RDD一 aggregateByKey案例参数:(zeroValue:U,[partitioner:Partitioner]) (seqOp: (U, V) => U,combOp: (U, U) => U)1. 作用:在kv对的RDD中,,按key将value进行...原创 2019-09-27 23:25:37 · 227 阅读 · 0 评论 -
Spark推测执行spark.speculation
背景hadoop的推测执行 推测执行(Speculative Execution)是指在分布式集群环境下,因为程序BUG,负载不均衡或者资源分布不均等原因,造成同一个job的多个task运行速度不一致,有的task运行速度明显慢于其他task(比如:一个job的某个task进度只有10%,而其他所有task已经运行完毕),则这些task拖慢了作业的整体执行进度,为了避免这种情况发生,Ha...转载 2019-10-10 11:22:35 · 662 阅读 · 0 评论 -
Spark中,RDD概述(五大属性,弹性介绍,5个特性)
1 什么是RDDRDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark 中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。在Spark 中,对数据的所有操作不外乎创建RDD、转化已有RDD 以及调用RDD 操作进行求值。每个RDD 都被分为多个分区,这些分区运行在集群中的不同节点上。RDD 可以包含Python、Java、Sc...原创 2019-09-26 16:29:58 · 7939 阅读 · 1 评论