Spark
翔飞天宇
资料共享,相互学习,共同进步
展开
-
Spark性能优化指南——高级篇
文章转自:http://tech.meituan.com/spark-tuning-pro.html李雪蕤 ·2016-05-12 14:47前言继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优调优概述有的时候,我们可转载 2016-05-25 20:47:43 · 816 阅读 · 0 评论 -
Spark算子:RDD键值转换操作(3)–groupByKey、reduceByKey、reduceByKeyLocally
关键字:Spark算子、Spark RDD键值转换、groupByKey、reduceByKey、reduceByKeyLocallygroupByKeydef groupByKey(): RDD[(K, Iterable[V])]def groupByKey(numPartitions: Int): RDD[(K, Iterable[V])]def groupByKey(part转载 2016-12-26 15:09:59 · 724 阅读 · 0 评论 -
Spark算子:RDD键值转换操作(4)–cogroup、join
关键字:Spark算子、Spark RDD键值转换、cogroup、joincogroup##参数为1个RDDdef cogroup[W](other: RDD[(K, W)]): RDD[(K, (Iterable[V], Iterable[W]))]def cogroup[W](other: RDD[(K, W)], numPartitions: Int): RDD[(K, (转载 2016-12-26 15:25:07 · 689 阅读 · 0 评论 -
Spark算子:RDD键值转换操作(5)–leftOuterJoin、rightOuterJoin、subtractByKey
关键字:Spark算子、Spark RDD键值转换、leftOuterJoin、rightOuterJoin、subtractByKeyleftOuterJoindef leftOuterJoin[W](other: RDD[(K, W)]): RDD[(K, (V, Option[W]))]def leftOuterJoin[W](other: RDD[(K, W)], numPar转载 2016-12-26 15:35:31 · 2568 阅读 · 0 评论 -
Spark算子:统计RDD分区中的元素及数量
关键字:Spark算子、Spark RDD分区、Spark RDD分区元素数量Spark RDD是被分区的,在生成RDD时候,一般可以指定分区的数量,如果不指定分区数量,当RDD从集合创建时候,则默认为该程序所分配到的资源的CPU核数,如果是从HDFS文件创建,默认为文件的Block数。可以利用RDD的mapPartitionsWithIndex方法来统计每个分区中的元素及数量。关于m转载 2016-12-26 17:48:33 · 1658 阅读 · 0 评论 -
Spark RDD、DataFrame和DataSet的区别
转自:http://blog.csdn.NET/wo334499/article/details/51689549 RDD优点:编译时类型安全 编译时就能检查出类型错误面向对象的编程风格 直接通过类名点的方式来操作数据缺点:序列化和反序列化的性能开销 无论是集群间的通信, 还是IO操作都需要对对象的结构和数据进行序列化和反序列化.GC的性转载 2016-12-27 15:58:36 · 720 阅读 · 0 评论 -
spark中的cache() persist() checkpoint()之间的区别
cache()与persist():会被重复使用的(但是)不能太大的RDD需要cache。cache 只使用 memory,写磁盘的话那就叫 checkpoint 了。 哪些 RDD 需要 checkpoint?运算时间很长或运算量太大才能得到的 RDD,computing chain 过长或依赖其他 RDD 很多的 RDD。 实际上,将 ShuffleMapTask 的输出结果存放到本地磁盘原创 2016-12-27 17:51:54 · 16041 阅读 · 5 评论 -
Spark: sortBy和sortByKey函数详解
在很多应用场景都需要对结果数据进行排序,Spark中有时也不例外。在Spark中存在两种对RDD进行排序的函数,分别是 sortBy和sortByKey函数。sortBy是对标准的RDD进行排序,它是从Spark 0.9.0之后才引入的(可以参见SPARK-1063)。而sortByKey函数是对PairRDD进行排序,也就是有Key和Value的RDD。下面将分别对这两个函数的实现以及使用进转载 2016-12-30 09:53:50 · 2138 阅读 · 0 评论 -
spark 输出结果压缩(gz)
如果不想往下看,可以直接看结果:maxCallRdd.repartition(3).saveAsTextFile(path,GzipCodec.class); 恩,没错。就只这么一行简单的代码实现了gz压缩,但是为什么网上一直没找到呢,这个我不太清楚, 可能是他们没碰到吧。 最近项目的需求,其实很简单,就是将输出结果以.gz的格式压缩,每个压缩包的大小不能超过100M,而且压缩包的名称也转载 2017-01-23 11:18:55 · 4676 阅读 · 0 评论 -
Spark 2.0介绍:从RDD API迁移到DataSet API
RDD迁移到DataSetDataSet API将RDD和DataFrame两者的优点整合起来,DataSet中的许多API模仿了RDD的API,虽然两者的实现很不一样。所以大多数调用RDD API编写的程序可以很容易地迁移到DataSet API中,下面我将简单地展示几个片段来说明如何将RDD编写的程序迁移到DataSet。1、加载文件RDDval rdd = sparkCont转载 2017-01-23 18:44:58 · 411 阅读 · 0 评论 -
Spark多文件输出(MultipleTextOutputFormat)
因为Spark内部写文件方式其实调用的都是Hadoop那一套东西,所以我们也可以通过Spark实现多文件输出。不过遗憾的是,Spark内部没有多文件输出的函数供大家直接调用,值得欣慰的是,我们自己实现这个功能也是很简单的。我们可以通过调用saveAsHadoopFile函数并自定义一个OutputFormat类即可,代码如下:[plain] view plain copy转载 2017-06-16 18:10:29 · 2370 阅读 · 0 评论 -
浅析Apache Spark Caching和Checkpointing
Apache Spark应用开发中,内存管理是最重要的人物之一,但cacheing和checkpointing之间的差异可能会导致混乱。这2种操作是都是用来防止rdd(弹性分布式数据集)每次被引用时被重复计算带来的时间和空间上不必要的损失。然而他们之间的区别是什么呢?fengmian.pngCachingcache 机制保证了需要访问重复数据的应用(如迭代型算法转载 2017-06-16 18:11:36 · 459 阅读 · 0 评论 -
Spark Streaming中的操作函数分析
根据Spark官方文档中的描述,在Spark Streaming应用中,一个DStream对象可以调用多种操作,主要分为以下几类TransformationsWindow OperationsJoin OperationsOutput Operations一、Transformations1、map(func) map操作需要传入一个函数当做参数,具体调用形式为val b转载 2017-06-20 15:53:06 · 334 阅读 · 0 评论 -
Spark DataFrames入门指南:创建和操作DataFrame
一、从csv文件创建DataFrame 本文将介绍如何从csv文件创建DataFrame。如何做? 从csv文件创建DataFrame主要包括以下几步骤: 1、在build.sbt文件里面添加spark-csv支持库; 2、创建SparkConf对象,其中包括Spark运行所有的环境信息; 3、创建SparkContext对象,它是进入Spark的核心切入点,转载 2017-06-20 17:32:16 · 847 阅读 · 0 评论 -
Spark创建DataFrame和读取CSV数据文件
之前写的程序中,有些API在Spark SQLContext没有,我计算的结果先保存在rdd中,最后在使用RDD转换成dataframe进行保存,话不多说下面是代码.//一个StruceField你可以把它当成一个特征列。分别用列的名称和数据类型初始化 val structFields = List(StructField("age",DoubleType),StructField("h原创 2017-06-20 20:07:52 · 4784 阅读 · 0 评论 -
Spark 下操作 HBase(1.0.0 新 API)
HBase经过七年发展,终于在今年2月底,发布了 1.0.0 版本。这个版本提供了一些让人激动的功能,并且,在不牺牲稳定性的前提下,引入了新的API。虽然 1.0.0 兼容旧版本的 API,不过还是应该尽早地来熟悉下新版API。并且了解下如何与当下正红的 Spark 结合,进行数据的写入与读取。鉴于国内外有关 HBase 1.0.0 新 API 的资料甚少,故作此文。本文将分两部分介绍,第转载 2016-09-02 14:26:05 · 629 阅读 · 0 评论 -
spark 基础知识- spark SQL专题
一、简介 Spark SQL是Spark中处理结构化数据的模块。与基础的Spark RDD API不同,Spark SQL的接口提供了更多关于数据的结构信息和计算任务的运行时信息。在Spark内部,Spark SQL会能够用于做优化的信息比RDD API更多一些。Spark SQL如今有了三种不同的API:SQL语句、DataFrame API和最新的Dataset API。不过真正运行计算转载 2017-07-18 14:49:34 · 1107 阅读 · 0 评论 -
java.io.IOException: No space left on device
java.io.IOException: No space left on device 错误今天碰到比较奇怪的问题: INFO util.Utils: Fetching http://192.168.31.160:33039/jars/spark_study_java-0.0.1-SNAPSHOT-jar-with-dependencies.jar to /tmp/spark-4原创 2017-09-14 15:30:32 · 6828 阅读 · 0 评论 -
Spark算子:RDD键值转换操作(2)–combineByKey、foldByKey
关键字:Spark算子、Spark RDD键值转换、combineByKey、foldByKeycombineByKeydef combineByKey[C](createCombiner: (V) => C, mergeValue: (C, V) => C, mergeCombiners: (C, C) => C): RDD[(K, C)]def combineByKey[C](cr转载 2016-12-26 14:52:26 · 631 阅读 · 0 评论 -
Spark算子:RDD键值转换操作(1)–partitionBy、mapValues、flatMapValues
关键字:Spark算子、Spark RDD键值转换、partitionBy、mapValues、flatMapValuespartitionBydef partitionBy(partitioner: Partitioner): RDD[(K, V)]该函数根据partitioner函数生成新的ShuffleRDD,将原RDD重新分区。scala> var rdd1 =转载 2016-12-26 14:49:21 · 1149 阅读 · 0 评论 -
Spark算子:RDD基本转换操作(7)–zipWithIndex、zipWithUniqueId
关键字:Spark算子、Spark RDD基本转换、zipWithIndex、zipWithUniqueIdzipWithIndexdef zipWithIndex(): RDD[(T, Long)]该函数将RDD中的元素和这个元素在RDD中的ID(索引号)组合成键/值对。scala> var rdd2 = sc.makeRDD(Seq("A","B","R","D","F"),2转载 2016-12-27 14:29:37 · 1741 阅读 · 0 评论 -
Spark性能优化指南——基础篇
文章转载自:http://tech.meituan.com/spark-tuning-basic.html李雪蕤 ·2016-04-29 14:00前言在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。在美团•转载 2016-05-25 20:45:53 · 648 阅读 · 0 评论 -
Spark在美团的实践
文章转载自:http://tech.meituan.com/spark-in-meituan.htmlSpark在美团的实践曾林西 李雪蕤 秦思源 毕岩 黄忠 ·2016-03-31 17:00本文已发表在《程序员》杂志2016年4月期。前言美团是数据驱动的互联网服务,用户每天在美团上的点击、浏览、下单支付行为都会产生海量的日志,这些日志数据将被汇总处理、分析、挖掘转载 2016-05-26 14:33:56 · 1008 阅读 · 0 评论 -
Spark算子系列文章
Spark算子:RDD基本转换操作(1)–map、flagMap、distinctSpark算子:RDD创建操作Spark算子:RDD基本转换操作(2)–coalesce、repartitionSpark算子:RDD基本转换操作(3)–randomSplit、glomSpark算子:RDD基本转换操作(4)–union、intersection、subtract原创 2016-12-27 14:40:12 · 1566 阅读 · 0 评论 -
Spark算子:RDD行动Action操作(1)–first、count、reduce、collect
关键字:Spark算子、Spark RDD行动Action、first、count、reduce、collectfirstdef first(): Tfirst返回RDD中的第一个元素,不排序。scala> var rdd1 = sc.makeRDD(Array(("A","1"),("B","2"),("C","3")),2)rdd1: org.apache.spark.rdd.转载 2016-12-26 15:46:47 · 925 阅读 · 0 评论 -
Spark算子:RDD行动Action操作(2)–take、top、takeOrdered
关键字:Spark算子、Spark RDD行动Action、take、top、takeOrderedtakedef take(num: Int): Array[T]take用于获取RDD中从0到num-1下标的元素,不排序。scala> var rdd1 = sc.makeRDD(Seq(10, 4, 2, 12, 3))rdd1: org.apache.spark.rdd.RDD转载 2016-12-26 15:51:48 · 5533 阅读 · 0 评论 -
Spark算子:RDD行动Action操作(3)–aggregate、fold、lookup
关键字:Spark算子、Spark函数、Spark RDD行动Action、aggregate、fold、lookupaggregatedef aggregate[U](zeroValue: U)(seqOp: (U, T) ⇒ U, combOp: (U, U) ⇒ U)(implicit arg0: ClassTag[U]): Uaggregate用户聚合RDD中的元素,先使用se转载 2016-12-26 16:08:11 · 736 阅读 · 0 评论 -
Spark算子:RDD行动Action操作(4)–countByKey、foreach、foreachPartition、sortBy
关键字:Spark算子、Spark函数、Spark RDD行动Action、countByKey、foreach、foreachPartition、sortBycountByKeydef countByKey(): Map[K, Long]countByKey用于统计RDD[K,V]中每个K的数量。scala> var rdd1 = sc.makeRDD(Array(("A",0)转载 2016-12-26 16:31:20 · 1476 阅读 · 0 评论 -
Spark算子:RDD行动Action操作(5)–saveAsTextFile、saveAsSequenceFile、saveAsObjectFile
关键字:Spark算子、Spark函数、Spark RDD行动Action、Spark RDD存储操作、saveAsTextFile、saveAsSequenceFile、saveAsObjectFilesaveAsTextFiledef saveAsTextFile(path: String): Unitdef saveAsTextFile(path: String, codec:转载 2016-12-26 16:36:17 · 2563 阅读 · 0 评论 -
Spark算子:RDD行动Action操作(6)–saveAsHadoopFile、saveAsHadoopDataset
关键字:Spark算子、Spark函数、Spark RDD行动Action、Spark RDD存储操作、saveAsHadoopFile、saveAsHadoopDatasetsaveAsHadoopFiledef saveAsHadoopFile(path: String, keyClass: Class[_], valueClass: Class[_], outputFormatCla转载 2016-12-26 16:52:07 · 1363 阅读 · 0 评论 -
Spark算子:RDD行动Action操作(7)–saveAsNewAPIHadoopFile、saveAsNewAPIHadoopDataset
关键字:Spark算子、Spark函数、Spark RDD行动Action、Spark RDD存储操作、saveAsNewAPIHadoopFile、saveAsNewAPIHadoopDatasetsaveAsNewAPIHadoopFiledef saveAsNewAPIHadoopFile[F def saveAsNewAPIHadoopFile(path: String, ke转载 2016-12-26 16:56:24 · 1618 阅读 · 0 评论 -
Spark算子:RDD创建操作
关键字:Spark RDD 创建、parallelize、makeRDD、textFile、hadoopFile、hadoopRDD、newAPIHadoopFile、newAPIHadoopRDD从集合创建RDDparallelizedef parallelize[T](seq: Seq[T], numSlices: Int = defaultParallelism)(impli转载 2016-12-26 17:39:41 · 749 阅读 · 0 评论 -
Spark算子:RDD基本转换操作(1)–map、flagMap、distinct
关键字:Spark算子、Spark RDD基本转换、map、flatMap、distinctmap将一个RDD中的每个数据项,通过map中的函数映射变为一个新的元素。输入分区与输出分区一对一,即:有多少个输入分区,就有多少个输出分区。hadoop fs -cat /tmp/lxw1234/1.txthello worldhello sparkhello hive //读取HD转载 2016-12-27 11:48:58 · 1279 阅读 · 0 评论 -
Spark算子:RDD基本转换操作(2)–coalesce、repartition
关键字:Spark算子、Spark RDD基本转换、coalesce、repartitioncoalescedef coalesce(numPartitions: Int, shuffle: Boolean = false)(implicit ord: Ordering[T] = null): RDD[T]该函数用于将RDD进行重分区,使用HashPartitioner。第一个参数转载 2016-12-27 13:20:43 · 974 阅读 · 0 评论 -
Spark算子:RDD基本转换操作(3)–randomSplit、glom
关键字:Spark算子、Spark RDD基本转换、randomSplit、glomrandomSplitdef randomSplit(weights: Array[Double], seed: Long = Utils.random.nextLong): Array[RDD[T]]该函数根据weights权重,将一个RDD切分成多个RDD。该权重参数为一个Double数组第转载 2016-12-27 13:34:53 · 1511 阅读 · 0 评论 -
Spark算子:RDD基本转换操作(4)–union、intersection、subtract
关键字:Spark算子、Spark RDD基本转换、union、intersection、subtractuniondef union(other: RDD[T]): RDD[T]该函数比较简单,就是将两个RDD进行合并,不去重。 scala> var rdd1 = sc.makeRDD(1 to 2,1)rdd1: org.apache.spark.rdd.RDD[Int]转载 2016-12-27 13:44:18 · 7160 阅读 · 0 评论 -
Spark算子:RDD基本转换操作(5)–mapPartitions、mapPartitionsWithIndex
关键字:Spark算子、Spark RDD基本转换、mapPartitions、mapPartitionsWithIndexmapPartitionsdef mapPartitions[U](f: (Iterator[T]) => Iterator[U], preservesPartitioning: Boolean = false)(implicit arg0: ClassTag[U])转载 2016-12-27 13:55:16 · 708 阅读 · 0 评论 -
Spark算子:RDD基本转换操作(6)–zip、zipPartitions
关键字:Spark算子、Spark RDD基本转换、zip、zipPartitionszipdef zip[U](other: RDD[U])(implicit arg0: ClassTag[U]): RDD[(T, U)]zip函数用于将两个RDD组合成Key/Value形式的RDD,这里默认两个RDD的partition数量以及元素数量都相同,否则会抛出异常。scala> va转载 2016-12-27 14:24:05 · 648 阅读 · 0 评论 -
[转]Spark与Pandas中DataFrame对比(详细)
PandasSpark工作方式单机single machine tool,没有并行机制parallelism不支持Hadoop,处理大量数据有瓶颈分布式并行计算框架,内建并行机制parallelism,所有的数据和操作自动并行分布在各个集群结点上。以处理in-memory数据的方式处理distributed数据。支持Hadoop,能处理大量数据延迟机制原创 2017-08-29 15:24:52 · 1803 阅读 · 0 评论