Spark
beautiful_huang
万般皆苦 唯有自度
展开
-
【Spark】Spark Streaming(二)—— DStream Transformation操作
本节主要内容本节部分内容来自官方文档:http://spark.apache.org/docs/latest/streaming-programming-guide.htmlDStream Transformation操作1. Transformation操作 Transformation Meaning map(func) 对DStream中的各个元素进...原创 2020-03-24 10:13:38 · 234 阅读 · 0 评论 -
【Spark】Spark Streaming(一)
1. Spark流式计算简介Hadoop的MapReduce及Spark SQL等只能进行离线计算,无法满足实时性要求较高的业务需求,例如实时推荐、实时网站性能分析等,流式计算可以解决这些问题。目前有三种比较常用的流式计算框架,它们分别是Storm,Spark Streaming和Samza,各个框架的比较及使用情况,可以参见:http://www.csdn.net/article/2015-0...原创 2020-03-23 21:41:25 · 134 阅读 · 0 评论 -
【Spark】Spark Streaming foreachRDD的正确使用方式
重点:Spark Streaming的foreachRDD运行在Driver端,而foreach和foreachPartion运行在Worker节点。备注:对数据的向外输出,还是用foreach**算子好,不要用Map**算子,因为Map还要返回一个RDD。误区一:在driver上创建连接对象(比如网络连接或数据库连接)如果在driver上创建连接对象,然后在RDD的算子函数内使用连接对象,那么就...原创 2020-03-23 11:11:39 · 387 阅读 · 0 评论 -
【Spark】Spark join()和cogroup()区别
官网对join和cogroup解释示例代码: /** * join(otherDataSet,[numTasks]) * 加入一个RDD,在一个(k,v)和(k,w)类型的dataSet上调用,返回一个(k,(v,w))的pair dataSet。 */ def join(): Unit ={ val list1RDD = sc.parallelize(L...原创 2020-03-23 10:11:12 · 936 阅读 · 0 评论 -
【Spark】pyspark 基于DataFrame使用MLlib包
在这里,我们将基于DataFrame使用MLlib包。 另外,根据Spark文档,现在主要的Spark机器学习API是spark.ml包中基于DataFrame的一套模型。 5.1 ML包的介绍 从顶层上看,ML包主要包含三大抽象类:转换器、预测器和工作流。5.1.1 转换器(Transformer) 从Transformer抽象类派生出来的每一个新的Transformer都需要实现一个....原创 2020-03-13 14:06:05 · 801 阅读 · 0 评论 -
【Spark】pyspark常用RDD总结
为了更好地进行大数据分析与处理,最近在学习PySpark,整理了一下笔记 ,加深印象。1 Resilient Distributed Datasets(RDD)弹性分布式数据集(RDD)是一个不可变的JVM对象的分布式集合,是Spark的基本抽象。1.1 创建RDD 准备工作:>>> import pyspark>>> from pyspark i...原创 2020-03-13 14:01:55 · 1079 阅读 · 0 评论 -
【Spark】spark去重操作(窗口函数、内置函数)
查看重复记录找到最新的时间戳去重(窗口函数)import org.apache.spark.sql.expressions.Windowimport org.apache.spark.sql.functions._val dfResult = dfTraining.withColumn("rn",row_number() over Window.partitionBy($"user",...原创 2020-02-24 14:15:11 · 1315 阅读 · 0 评论 -
【Spark】Spark cache的用法及其误区分析
Spark cache的用法及其误区:一、Cache的用法注意点:(1)cache之后一定不能立即有其它算子,不能直接去接算子。因为在实际工作的时候,cache后有算子的话,它每次都会重新触发这个计算过程。(2)cache不是一个action,运行它的时候没有执行一个作业。(3)cache缓存如何让它失效:unpersist,它是立即执行的。persist是lazy级别的(没有计算),un...原创 2020-02-24 09:21:48 · 4279 阅读 · 0 评论 -
【Spark】Spark Dataframe实现列转行
转换之前先看下数据结构多行存在空值需要过滤,不同的状态(yes、maybe、invited、no)存在多个值,需要转换成(events userid status)的状态首先考虑单独两行映射val df = spark.read.format("csv").option("header","true").load("file:///opt/data/event_attendees.csv"...原创 2020-02-12 11:43:22 · 3359 阅读 · 2 评论 -
【Spark】spark dataframe常用操作(一行数据映射为多行)
spark dataframe派生于RDD类,但是提供了非常强大的数据操作功能。当然主要对类SQL的支持。在实际工作中会遇到这样的情况,主要是会进行两个数据集的筛选、合并,重新入库。首先加载数据集,然后在提取数据集的前几行过程中,才找到limit的函数。而合并就用到union函数,重新入库,就是registerTemple注册成表,再进行写入到HIVE中。不得不赞叹dataframe的强大...原创 2020-02-11 14:23:47 · 3555 阅读 · 0 评论 -
【python】pyspark详解
为了更好地进行大数据分析与处理,最近在学习PySpark,整理了一下笔记 ,加深印象。1 Resilient Distributed Datasets(RDD)弹性分布式数据集(RDD)是一个不可变的JVM对象的分布式集合,是Spark的基本抽象。1.1 创建RDD 准备工作:>>> import pyspark>>> from pyspark ...原创 2020-02-06 17:07:46 · 2651 阅读 · 0 评论 -
【python】pyspark读取获取文件、加载已存在的文件、读取csv文件修改列名
读取获取文件# encoding=utf-8from pyspark import SparkContextfrom pyspark import SparkFilessc = SparkContext.getOrCreate()# dt = sc.addFile('hdfs://192.168.56.122:9000/data')with open(SparkFiles.ge...原创 2020-02-06 17:20:24 · 2072 阅读 · 0 评论 -
【spark】Spark Session 读取csv文件、修改无列名文件名
处理有列名文件-- 处理有列表名的文件scala> val cus = spark.read.format("csv").option("header","true").load("hdfs://192.168.56.122:9000/20200107/cust.csv")scala> cus.printSchemaroot |-- userid: string (nu...原创 2020-02-06 17:03:11 · 4185 阅读 · 0 评论 -
【Spark】Spark 转换算子详解
文章目录一、简介二、转换算子详解map、flatMap、distinctcoalesce 和 repartitionrandomSplitglomunionsubtrat一、简介转换(Transformation)算子就是对RDD进行操作的接口函数,其作用是将一个或多个RDD变换成新的RDD。使用Spark进行数据计算,在利用创建算子生成RDD后,数据处理的算法设计和程序编写的最关键部分,...原创 2020-02-05 16:38:15 · 1428 阅读 · 0 评论 -
【Spark】RDD行动算子
文章目录简介所有RDD行动算子:数据运算类行动算子reduce——Reduce操作aggregate——聚合操作简介在Spark中转换算子并不会马上进行运算的,即所谓的“惰性运算”,而是在遇到行动算子时才会执行相应的语句的,触发Spark的任务调度开始进行计算。所有RDD行动算子:aggregate、collect、count、first、foreach、reduce、take、take...原创 2020-02-05 16:37:40 · 997 阅读 · 0 评论 -
【Spark】Spark GraphX 图计算(一)
1、图(GraphX)1.1、基本概念图是由顶点集合(vertex)及顶点间的关系集合(边edge)组成的一种数据结构。这里的图并非指代数中的图。图可以对事物以及事物之间的关系建模,图可以用来表示自然发生的连接数据,如:社交网络、互联网web页面常用的应用有:在地图应用中找到最短路径、基于与他人的相似度图,推荐产品、服务、人际关系或媒体。2、术语2.1、顶点和边一般关系图中,事物为顶点,关系为边2...原创 2020-01-09 20:05:22 · 883 阅读 · 0 评论 -
【Spark】Spark SQL 连接操作 Mysql
拷贝jar包并启动[root@hw1 ~]# cd /opt/soft/spark234/bin[root@hw1 bin]# ./spark-shell --jars /opt/soft/spark234/jars/mysql-connector-java-5.1.38.jarSpark读取mysql文件scala> val prop = new java.util.Proper...原创 2020-01-09 19:58:29 · 481 阅读 · 0 评论 -
【Spark】Spark 访问连接 HIVE
配置注意点:1.拷贝mysql-connector-java-5.1.38-bin.jar等相关的jar包到你sparkhome/lib中(spark2.0之后是{spark_home}/lib中(spark2.0之后是sparkhome/lib中(spark2.0之后是{spark_home}/jars下),不清楚就全部拷贝过去2.将Hive的配置文件hive-site.xml拷贝到${s...原创 2020-01-09 19:51:04 · 1702 阅读 · 0 评论 -
【Saprk】Spark DataFrame 列的类型转换
应用场景当需要把DataFrame中所有列的类型转换成另外一种类型,并且这个DataFrame中字段很多,一个一个地转换要写很多冗余代码的时候,就可以使用如下这两种转换方式。 方法一scala> a.select(a.col("id"),a.col("username"),a.col("birthday").cast("string").as("bir"))...原创 2020-01-09 11:13:04 · 8737 阅读 · 1 评论 -
【Spark】Spark groupByKey,reduceByKey,sortByKey 算子比较
在spark中,我们知道一切的操作都是基于RDD的。在使用中,RDD有一种非常特殊也是非常实用的format——pair RDD,即RDD的每一行是(key, value)的格式。这种格式很像Python的字典类型,便于针对key进行一些处理。首先,看一看spark官网[1]是怎么解释的:reduceByKey(func, numPartitions=None)Merge the values f...原创 2020-01-08 19:14:58 · 281 阅读 · 0 评论 -
【Spark】SparkSql内置函数之时间日期类
一、获取当前时间1.current_date获取当前日期2018-04-092.current_timestamp/now()获取当前时间2018-04-09 15:20:49.247二、从日期时间中提取字段 1.year,month,day/dayofmonth,hour,minute,secondExamples:> SELECT day('2009-07-30'...原创 2020-01-08 18:26:45 · 4186 阅读 · 0 评论 -
【Spark】spark randomSplit glom函数操作详解
该函数根据weights权重,将一个RDD切分成多个RDD。该权重参数为一个Double数组第二个参数为random的种子,基本可忽略。scala> var rdd = sc.makeRDD(1 to 10,10)rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[16] at makeRDD at :21scal...原创 2020-01-06 19:49:07 · 515 阅读 · 0 评论 -
【Spark】spark 自定义Partitioner
在对RDD数据进行分区时,默认使用的是 HashPartitioner,该partitioner对key进行哈希,然后mod 上分区数目,mod的结果相同的就会被分到同一个partition中如果嫌HashPartitioner 功能单一,可以自定义partitioner自定义partitioner1.继承org.apache.spark.Partitioner2.重写numPart...原创 2020-01-04 14:24:39 · 220 阅读 · 0 评论 -
【Spark】Spark中的Partitioner
前言分区只不过是将原来大的数据分成几部分。 比如分布式系统中的分区,我们可以将其定义为大型数据集的分区,并将它们存储为整个群集中的多个部分。通过分区可以减少网络I/O,从而可以更快地处理数据。在Spark中,co-group,groupBy,groupByKey等操作需要大量的I/O操作。 在这种情况下,如果我们应用分区,那么我们可以快速减少I/O操作的数量,以便我们可以加速数据处理。Spa...原创 2020-01-04 14:22:23 · 318 阅读 · 0 评论 -
【Spark】Spark转换(transform)与动作(action)一览
转换含义map(func)每一个输入元素经过func函数转换后输出一个元素filter(func)返回经过 func 函数计算后返回值为 true 的输入元素组成的一个新数据集flatMap(func)类似于 map,但是每一个输入元素可以被映射为0或多个输出元素,因此 func 应该返回一个序列mapPartitions(func)类似于 map,但独立地在 RDD 的每一个分块上运行,因此在类...原创 2020-01-03 20:00:18 · 1575 阅读 · 0 评论 -
【Spark】RDD创建总结
文章目录方式一、从内存中创建1.makeRDD2.parallelize方式二、从文件系统创建1.textFile2.wholeTextFiles3.sequenceFile4、saveAsHadoopFile5.newAPIHadoopRDD方式一、从内存中创建1.makeRDDscala> val df = sc.makeRDD(List("huangmouren","henshu...原创 2020-01-03 19:54:58 · 187 阅读 · 0 评论 -
【Spark】parallelize、makeRDD函数区别
Spark提供了两种创建RDD的方式:读取外部数据集,以及在驱动器程序中对一个集合进行并行化。在驱动器程序中对一个集合进行并行化的方式有两种:parallelize()和makeRDD()。1、parallelize()def parallelize[T: ClassTag]( seq: Seq[T], numSlices: Int = defaultPara...原创 2020-01-03 19:38:04 · 2163 阅读 · 0 评论 -
【Spark】SparkSession与SparkContext(详解)
文章开始先让我们看一张图从图中我们可以大概看出SparkSession与SparkContext的关系了SparkSession是Spark 2.0引如的新概念。SparkSession为用户提供了统一的切入点,来让用户学习spark的各项功能。 在spark的早期版本中,SparkContext是spark的主要切入点,由于RDD是主要的API,我们通过sparkcontext来创建和操...原创 2020-01-03 14:57:47 · 3267 阅读 · 0 评论 -
【Spark】Spark集群搭建
文章目录一、下载spark官网下载从微软的镜像站下载从清华的镜像站下载二、安装基础三、Spark安装1、上传并解压缩2、修改配置文件3、添加连接接点4、添加运行环境5、配置jdk6、拷贝到从节点7、启动 spark四、验证一、下载spark官网下载http://spark.apache.org/downloads.html从微软的镜像站下载http://mirrors.hust.edu....原创 2020-01-02 18:58:08 · 298 阅读 · 0 评论 -
【Spark】Apache Spark三种分布式部署方式比较
目前Apache Spark支持三种分布式部署方式,分别是standalone、spark on mesos和 spark on YARN其中,第一种类似于MapReduce 1.0所采用的模式,内部实现了容错性和资源管理,后两种则是未来发展的趋势,部分容错性和资源管理交由统一的资源管理系统完成:让Spark运行在一个通用的资源管理系统之上,这样可以与其他计算框架,比如MapReduce,公用一...原创 2020-01-02 18:33:58 · 261 阅读 · 0 评论 -
【Spark】 Spark特点介绍、Spark Streaming和Storm的区别
文章目录一、Spark介绍二、Spark特点三、Spark Streaming和Storm一、Spark介绍Spark是一个基于内存的开源计算框架Spark主要应用于大数据的计算,而Hadoop将主要用于大数据的存储(HDFS、HIVE、 Hbase等),Saprk+Hadoop组合,是未来大数据领域最热门的组合.Apache官方给出的定义是:通用的大数据快速处理引擎Spsrk使用Spa...原创 2020-01-02 18:30:35 · 490 阅读 · 0 评论