spark
liangzelei
这个作者很懒,什么都没留下…
展开
-
SparkSQL 用户自定义函数(UDF、UDAF、开窗)
UDF函数通过spark.udf.register("funcName", func) 来进行注册使用:select funcName(name) from people 来直接使用UDAF函数弱类型需要继承UserDefineAggregateFunction并实现相关方法使用:同样是注册一个udf函数import org.apache.spark.SparkConfimport org.ap...原创 2018-06-07 16:37:30 · 6273 阅读 · 0 评论 -
RDD、DataFrame、DataSet互转
如果需要RDD与DS或者DF之间操作,那么都需要引入 import spark.implicits._ 【spark不是包名,而是sparkSession对象的名称】1、RDD 《-》 DataFrame 1、RDD -》 DataFrame (确定Schema) a、直接手动确定: peopleRDD.map{x => val para = x.split(...原创 2018-06-08 10:42:55 · 1744 阅读 · 0 评论 -
SparkSQL的执行模式
1、DSL模式 【通过调用方法】dataFame.select("name").showdataFame.filter($"age" > 25).show2、SQL模式 【通过执行SQL】 1、先创建一张表: 一个SparkContext可以多次创建 sparkSession。 //Session内可访问, 一个SparkSession结束后,表自动删除。...原创 2018-06-08 10:52:22 · 744 阅读 · 0 评论 -
SparkSQL与Hive集成
1、使用内置的Hive 【hive1.2.1】 1、注意:如果发现master节点有 matestore_db出现,删除, 然后,启动客户端 配置: bin/spark-shell --master spark://master01:7077 --conf spark.sql.wareho...原创 2018-06-08 11:21:03 · 776 阅读 · 0 评论 -
scala - 从合并两个Map说开去 - foldLeft 和 foldRight 还有模式匹配
开发中遇到需求:合并两个Map集合对象(将两个对应KEY的值累加)先说解决方案:( map1 /: map2 ) { case (map, (k,v)) => map + ( k -> (v + map.getOrElse(k, 0)) ) } 这特么什么鬼 (╯‵□′)╯""┻━┻☆))>○<) 。。。。。。莫急,且听我慢慢道来。。。。。。。。。首先:Scala中现有的...转载 2018-06-26 21:48:12 · 503 阅读 · 0 评论 -
pregel 与 spark graphX 的 pregel api
简介在Hadoop兴起之后,google又发布了三篇研究论文,分别阐述了了Caffeine、Pregel、Dremel三种技术,这三种技术也被成为google的新“三驾马车”,其中的Pregel是google提出的用于大规模分布式图计算框架。主要用于图遍历(BFS)、最短路径(SSSP)、PageRank计算等等计算。在Pregel计算模式中,输入是一个有向图,该有向图的每一个顶点都有一个相应的独...转载 2018-06-20 10:45:07 · 1003 阅读 · 0 评论 -
Spark编程之基本的RDD算子之join,rightOuterJoin, leftOuterJoin
1) joindef join[W](other: RDD[(K, W)]): RDD[(K, (V, W))]def join[W](other: RDD[(K, W)], numPartitions: Int): RDD[(K, (V, W))]def join[W](other: RDD[(K, W)], partitioner: Partitioner): RDD[(K, (V, W)...转载 2018-06-28 15:53:34 · 338 阅读 · 0 评论 -
Spark通过Jar包提交任务
Standalone需要通过bin/spark-submit来提交必需参数 --class --master举例如下:/home/bigdata/hadoop/spark-2.1.1-bin-hadoop2.7/bin/spark-submit \--class org.apache.spark.examples.SparkPi \--master spark://master01:7077 ...原创 2018-05-31 13:57:22 · 7715 阅读 · 0 评论 -
Spark的HA配置
Spark集群部署完了,但是有一个很大的问题,那就是 Master 节点存在单点故障,要解决此问题,就要借助 zookeeper,并且启动至少两个 Master 节点来实现高可靠,配置方式比较简单Spark 集群规划:master01,master02 是 Master;slave01,slave02,slave03是 Worker停止 spark 所有服务,修改配置文件 spark-env.sh...原创 2018-05-31 13:33:13 · 627 阅读 · 0 评论 -
RDD、DataFrame、DataSet介绍
在 SparkSQL 中 Spark 为我们提供了两个新的抽象,分别是 DataFrame 和DataSet。他们和 RDD 有什么区别呢?首先从版本的产生上来看:RDD (Spark1.0) —> Dataframe(Spark1.3) —> Dataset(Spark1.6)如果同样的数据都给到这三个数据结构,他们分别计算之后,都会给出相同的结果。不同是的他们的执行效率和执行方式。...原创 2018-06-07 10:32:54 · 346 阅读 · 0 评论 -
RDD算子 转换算子
RDD 中的所有转换都是延迟加载的,也就是说,它们并不会直接计算结果。相反的,它们只是记住这些应用到基础数据集(例如一个文件)上的转换动作。只有当发生一个要求返回结果给 Driver 的动作时,这些转换才会真正运行。这种设计让 Spark 更加有效率地运行。常用的Transformationmap,filter,flatMap,mapPartitions,mapPartitonsWithIndex...原创 2018-06-04 15:55:17 · 1805 阅读 · 0 评论 -
RDD算子 动作算子
reduce(func):通过 func 函数聚集 RDD 中的所有元素,这个功能必须是可 交换且可并联的scala> val rdd1 = sc.makeRDD(1 to 10,2)rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[85] atmakeRDD at <console>:24scala...原创 2018-06-04 21:00:38 · 487 阅读 · 0 评论 -
数值RDD的统计操作
Spark 对包含数值数据的 RDD 提供了一些描述性的统计操作。 Spark 的数值操作是通过流式算法实现的,允许以每次一个元素的方式构建出模型。这些 统计数据都会在调用 stats() 时通过一次遍历数据计算出来,并以StatsCounter 对象返回。方法 含义count()RDD中的元素个数mean()元素的平均值sum()总和max()最大值min()最小值variance()...原创 2018-06-04 21:06:25 · 3908 阅读 · 0 评论 -
Spark Streaming概述
1、Spark Streaming用于处理流式计算问题。能够和Spark的其他模块无缝集成。2、Spark Streaming是一个粗粒度的框架【也就是只能对一批数据指定处理方法】,核心是采用微批次架构。和Storm采用的以条处理的不同。3、Spark Streaming会运行接收器来不断的接收输入的数据流,然后根据程序配置的时间,将时间范围内的所有数据打成一个RDD,发送给Spark Core去...原创 2018-06-12 10:35:27 · 12495 阅读 · 0 评论 -
RDD 累加器
累加器累加器用来对信息进行聚合,通常在向 Spark 传递函数时,比如使用map() 函数或者用 filter() 传条件时,可以使用驱动器程序中定义的变量,但是集群中运行的每个任务都会得到这些变量的一份新的副本, 更新这些副本的值也不会影响驱动器中的对应变量。 如果我们想实现所有分片处理时更新共享变量的功能,那么累加器可以实现我们想要的效果。针对一个输入的日志文件,如果我们想计算文件中所有空行的...原创 2018-06-06 13:22:44 · 1358 阅读 · 0 评论 -
Spark 广播变量
广播变量用来高效分发较大的对象。向所有工作节点发送一个 较大的只读值,以供一个或多个 Spark 操作使用。比如,如果你的应用需要向所有节点发 送一个较大的只读查询表,甚至是机器学习算法中的一个很大的特征向量,广播变量用起 来都很顺手。传统方式下,Spark 会自动把闭包中所有引用到的变量发送到工作节点上。虽然这很方便,但也很低效。原因有二:首先,默认的任务发射机制是专门为小任务进行优化的;其次,...原创 2018-06-06 13:26:07 · 5107 阅读 · 0 评论 -
Spark集群配置
机器准备准备两台以上linux服务器,安装好JDK1.8下载Spark安装包下载地址解压安装包到指定目录配置Spark【Standalone】Spark 的部署模式有 Local、Local-Cluster、Standalone、Yarn、Mesos,我们选择最具代表性的 Standalone 集群部署模式。进入到Spark安装目录将conf目录下的slaves.template复制为slaves...原创 2018-05-31 09:01:10 · 206 阅读 · 0 评论 -
Spark配置日志服务器
复制spark.default.conf.template到spark.default.conf将以下内容添加到spark.default.conf中spark.eventLog.enabled truespark.eventLog.dir hdfs://namenode:8021/directory修改spark.env.shexport...原创 2018-05-31 10:51:58 · 1192 阅读 · 0 评论 -
Flume直接到SparkStreaming的两种方式
一般是flume->kafka->SparkStreaming,如果非要从Flume直接将数据输送到SparkStreaming里面有两种方式,如下:第一种:Push推送的方式程序如下:package cn.lijieimport org.apache.log4j.Levelimport org.apache.spark.streaming.flume.FlumeUt...转载 2018-07-21 11:32:50 · 1368 阅读 · 2 评论