Spark
搬砖小工053
这个作者很懒,什么都没留下…
展开
-
Spark RDD创建操作
从集合中创建RDDparallelizedef parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(implicit arg0: ClassTag[T]): RDD[T] 从一个Seq集合创建RDD。参数1: Seq 集合, 必须要有参数2: 分区数,默认为该Application分配的资源的CPU核心scala>原创 2016-07-22 11:41:41 · 3051 阅读 · 0 评论 -
RDD Transformation——reduceByKey
简介def reduceByKey(func: (V, V) => V): RDD[(K, V)]def reduceByKey(func: (V, V) => V, numPartitions: Int): RDD[(K, V)]def reduceByKey(partitioner: Partitioner, func: (V, V) => V): RDD[(K, V)]该函数用于将RDD[K,转载 2016-07-24 17:30:24 · 764 阅读 · 0 评论 -
RDD-Transformation——groupByKey
简介def groupByKey(): RDD[(K, Iterable[V])]def groupByKey(numPartitions: Int): RDD[(K, Iterable[V])]def groupByKey(partitioner: Partitioner): RDD[(K, Iterable[V])]该函数用于将 RDD[K,V] 中每个K对应的V值,合并到一个集合 Iter转载 2016-07-24 17:24:02 · 1012 阅读 · 0 评论 -
RDD-Transformation——filter
原理图filter的功能是对元素进行过滤,对每个元素应用f函数,返回值为true的元素在RDD中保留,返回为false的将过滤掉。 内部实现相当于生成FilteredRDD(this,sc.clean(f))。 图中,每个方框代表一个RDD分区。 T可以是任意的类型。通过用户自定义的过滤函数f,对每个数据项进行操作,将满足条件,返回结果为true的数据项保留。 例如,过滤掉V2、 V3保留了V1,转载 2016-07-24 21:32:05 · 2346 阅读 · 0 评论 -
RDD Transformation —— sample
原理sample将RDD这个集合内的元素进行采样,获取所有元素的子集。用户可以设定是否有放回的抽样、百分比、随机种子,进而决定采样方式。 参数说明: withReplacement=true, 表示有放回的抽样; withReplacement=false, 表示无放回的抽样。每个方框是一个RDD分区。通过sample函数,采样50%的数据。V1、V2、U1、U2、U3、U4采样出数据转载 2016-07-24 21:39:54 · 1631 阅读 · 0 评论 -
spark-submit 提交 spark-examples-1.6.1-hadoop2.6.0.jar
切换到spark安装目录bin/spark-submit --master spark://master:7077 --class org.apache.spark.examples.SparkPi --executor-memory 2g lib/spark-examples-1.6.1-hadoop2.6.0.jar–master 指定master节点 –class 指定执行的类 –exec原创 2016-07-21 20:47:33 · 6378 阅读 · 0 评论 -
[转载]详细探究Spark的shuffle实现
转载自 http://jerryshao.me/architecture/2014/01/04/spark-shuffle-detail-investigation/ Background在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。Spark作转载 2016-07-25 15:46:46 · 707 阅读 · 0 评论 -
Centos7 下 spark1.6.1_hadoop2.6 分布式集群环境搭建
摘要在上一篇博客《Centos7 下 Hadoop 2.6.4 分布式集群环境搭建》 已经详细写了Hadoop 2.6.4 配置过程,下面详细介绍 spark 1.6.1的安装过程。Scala 安装下载 ,解压下载 scala-2.11.8.tgz, 解压到 /root/workspace/software/scala-2.10.4t 目录下修改环境变量文件 /etc/profile添加以下内容e原创 2016-07-19 10:53:04 · 3748 阅读 · 0 评论 -
No module named pyspark
添加环境变量想使用python提交spark任务,第一步琚遇到错误 在 集群所有机器的/etc/profile上添加环境变量:$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.9-src.zip直接运行pyspark 为Spark创建一个iPython配置创建配置在 /root/.ipython/profile_pyspark/startup 目录原创 2016-07-19 11:14:43 · 11703 阅读 · 1 评论 -
Spark 提交任务时,指定文件
参数 说明 file:\\ file: – 文件绝对路径,并且file:/URI是通过驱动器的HTTP文件服务器来下载的,每个执行器都从驱动器的HTTP server拉取这些文件。 hdfs:\\ hdfs:, http:, https:, ftp: – 设置这些参数后,Spark将会从指定的URI位置下载所需的文件和jar包。 local:\\ local: –local原创 2016-07-19 16:32:14 · 2365 阅读 · 0 评论 -
RDD Transformation——takeSample
原理takeSample()函数和sample函数是一个原理,但是不使用相对比例采样,而是按设定的采样个数进行采样,同时返回结果不再是RDD,而是相当于对采样后的数据进行collect(),返回结果的集合为单机的数组。图中,左侧的方框代表分布式的各个节点上的分区,右侧方框代表单机上返回的结果数组。通过takeSample对数据采样,设置为采样一份数据,返回结果为V1。源码/** * Return转载 2016-07-30 17:45:07 · 4776 阅读 · 2 评论 -
Spark textFile
Spark 支持 text files ,SequenceFiles 和任何 hadoop inputFormat 格式,使用 textFile() 方法可以将本地文件或者HDFS文件转换成RDD。如果读取本地文件,各节点都要有该文件,或者使用网络共享文件支持整个文件目录的读取,如 textFile(“/my/directory”)压缩文件读取,如textFile(“/my/directory原创 2016-07-21 22:02:11 · 2124 阅读 · 0 评论 -
RDD Transformation——cartesian
说明从名字就可以看出这是笛卡儿的意思,就是对给的两个RDD进行笛卡儿计算。def cartesian[U: ClassTag](other: RDD[U]): RDD[(T, U)]该函数返回的是Pair类型的RDD,计算结果是当前RDD和other RDD中每个元素进行笛卡儿计算的结果。最后返回的是CartesianRDD。上手使用scala> val rdd1 = sc.makeRDD(List转载 2016-07-24 17:08:50 · 1570 阅读 · 0 评论 -
修改 log4j.properties把INFO级别设置成WARN级别
在 /这里是你的spark路径,spark1.6.1_hadoop2.6/conf目录下,运行cp log4j.properties.template log4j.properties然后打开 log4j.properties#Set everything to be logged to the consolelog4j.rootCategory=INFO, consolelog4j.appen原创 2016-07-22 22:45:17 · 5220 阅读 · 0 评论 -
Spark Transformation —— coalesce
coalesce 联合,合并def coalesce(numPartitions: Int, shuffle: Boolean = false)(implicit ord: Ordering[T] = null): RDD[T] 该函数用于将RDD进行重分区,使用HashPartitioner。第一个参数为重分区的数目,第二个为是否进行shuffle,默认为false;scala> var d原创 2016-07-22 11:52:10 · 444 阅读 · 0 评论 -
Spark Transformation —— repartition算子
def repartition(numPartitions: Int)(implicit ord: Ordering[T] = null): RDD[T] 该函数其实就是coalesce函数第二个参数为true的实现,coalesce 有合并联合的意思,更偏向于合并分区,而 repartion 算子就是重新分区的意思。scala> var rdd2 = data.repartition(1)原创 2016-07-22 11:57:44 · 762 阅读 · 0 评论 -
Spark Transformation —— randomSplit
def randomSplit(weights: Array[Double], seed: Long = Utils.random.nextLong): Array[RDD[T]]该函数根据weights权重,将一个RDD切分成多个RDD。该权重参数为一个Double数组,第二个参数为random的种子,基本可忽略。scala> var rdd = sc.makeRDD(1 to 10,10)rd原创 2016-07-22 12:40:39 · 3447 阅读 · 0 评论 -
Spark Transformation —— intersection
def intersection(other: RDD[T]): RDD[T]def intersection(other: RDD[T], numPartitions: Int): RDD[T]def intersection(other: RDD[T], partitioner: Partitioner)(implicit ord: Ordering[T] = null): RDD[T]该函原创 2016-07-22 19:52:25 · 496 阅读 · 0 评论 -
Spark Transformation —— subtract
上手使用def subtract(other: RDD[T]): RDD[T]def subtract(other: RDD[T], numPartitions: Int): RDD[T]def subtract(other: RDD[T], partitioner: Partitioner)(implicit ord: Ordering[T] = null): RDD[T]该函数类似于inte原创 2016-07-22 20:17:04 · 1206 阅读 · 0 评论 -
Spark Transformation —— map算子
特点在已有的RDD上创建一个新的RDD延迟执行(lazy), Transformation 的时候不执行,在促发action的时候执行。map(func) 函数功能说明返回一个新的分布式数据集,由每个原元素经过func函数转换后组成。新的分布式数据集和原数据集的形式是一样的。 将一个RDD中的每个数据项,通过map中的函数映射变为一个新的元素。输入分区与输出分区一对一,即:有多少个输入分区原创 2016-07-22 10:22:23 · 1564 阅读 · 0 评论 -
Spark Transformation —— flatMap算子
flatMap(func)类似于map,但是每一个输入元素,会被映射为0到多个输出元素(因此,func函数的返回值是一个Seq,而不是单一元素)返回的有点类似于集合的概念,把list,或者array的元素都抽出来,组成一个集合。第一步和map一样,最后将所有的输出分区合并成一个。代码测试测试数据准备在hdfs上放一个文件1.txt 打开spark-shellspark-shell --mast原创 2016-07-22 10:36:24 · 2676 阅读 · 0 评论 -
Spark Transformation —— mapPartitions
原理def mapPartitions[U](f: (Iterator[T]) => Iterator[U], preservesPartitioning: Boolean = false)(implicit arg0: ClassTag[U]): RDD[U] 该函数和map函数类似,只不过映射函数的参数由RDD中的每一个元素变成了RDD中每一个分区的迭代器。如果在映射的过程中需要频繁创建额外原创 2016-07-22 20:41:37 · 1028 阅读 · 0 评论 -
Spark Transformation —— glom
def glom(): RDD[Array[T]]该函数是将RDD中每一个分区中类型为T的元素转换成Array[T],这样每一个分区就只有一个数组元素。scala> var rdd = sc.makeRDD(1 to 10,3)rdd: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[38] at makeRDD at :21scala>原创 2016-07-22 12:44:51 · 835 阅读 · 0 评论 -
RDD Transformation算子分类
处理数据类型为Value型的Transformation算子可以根据RDD变换算子的输入分区与输出分区关系分为以下几种类型:1)输入分区与输出分区一对一型 (1)map (2)flatMap (3)mapPartitions (4)glom2)输入分区与输出分区多对一型 (1)union (2)certesian3)输入分区与输出分区多对多型 groupBy4)原创 2016-07-22 20:49:54 · 644 阅读 · 0 评论 -
Spark Transformation —— union
def union(other: RDD[T]): RDD[T]该函数比较简单,就是将两个RDD进行合并,不去重。scala> var rdd1 = sc.makeRDD(1 to 2,1)rdd1: org.apache.spark.rdd.RDD[Int] = ParallelCollectionRDD[45] at makeRDD at :21scala> rdd1.collectres4原创 2016-07-22 12:55:31 · 662 阅读 · 0 评论 -
Spark Transformation —— distinct 算子
distinct对RDD中的元素进行去重操作。代码测试测试数据准备在hdfs上放一个文件1.txt 打开spark-shellspark-shell --master spark://master:7077(重要的事情说多遍,spark-shell和spark-submit核心的参数是差不多的)创建RDDvar data = sc.textFile("/qgzang/1.txt") 测试di原创 2016-07-22 10:45:50 · 3900 阅读 · 0 评论