![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
Alan_DM
还是学生
展开
-
初始Spark
Spark是于2009年作为一个研究项目在加州大学伯克利分校RAD实验室(AMPLab的前身)诞生。 什么是Spark? Spark是一个用来实现快速而通用的集群计算平台,其核心是一个对由很多计算任务组成的、运行在多个工作机器或者是一个计算集群上的应用进行调度、分发以及监控的计算引擎。应用场景: 批处理、迭代算法、交互式查询、流处理。spark提供的接口非常丰富。除了提供基于Python、Ja原创 2016-09-18 10:56:09 · 490 阅读 · 0 评论 -
Spark--数据读取与保存
1、动机 有时候数据量会大到本机可能无法存储,这时就需要探索别的读取和保存方法了。 Spark支持很多种输入源和输出源。一部分原因是Spark本身是基于Hadoop生态圈二构建的,so spark可以通过Hadoop MapReduce 所使用的InputFormat 和 OutPutFormat 接口访问数据,而大部分常见的文件格式与存储系统(S3,HDFS,Cassandra,HBase等)原创 2016-12-19 19:47:31 · 13339 阅读 · 1 评论 -
Pair RDD
1、创建Pair RDD 当需要把一个普通的RDD转为Pair RDD时,可以用map()函数来实现。例如:scala> val lines = sc.makeRDD(List(("No pains"),("No gains")))lines: org.apache.spark.rdd.RDD[String] = ParallelCollectionRDD[0] at makeRDD at <原创 2016-12-13 18:00:16 · 398 阅读 · 0 评论 -
RDD基本转化操作:filter、union、intersection、subtract、map
1、filter 简单说就是过滤操作,得到自己想要的元素。 val inputRDD = sc.textFile("README.md")inputRDD: org.apache.spark.rdd.RDD[String] = README.md MapPartitionsRDD[1] at textFile at <console>:24scala> val pythonRDD = input原创 2016-12-05 16:29:30 · 1232 阅读 · 0 评论 -
RDD行动操作
行动操作是第二种类型的RDD操作,它们会把最终求得的结果返回到驱动器程序中,或者写入外部存储系统中。 常见的RDD行动操作: 1. reduce() :它接收一个函数作为参数,这个函数要操作两个相同的元素类型的RDD数据并返回一个同样类型的新元素。一个简单的例子就是函数+,可以用它来对我们的RDD进行累加。使用reduce课以很方便地计算出RDD中所有元素的总和,元素个数,以及其他类型的聚合操原创 2016-12-05 17:56:12 · 1222 阅读 · 0 评论 -
初识RDD
1、Spark中的RDD就是一个不可变的分布式对象集合,每个RDD都被分为多个分区,这些分区运行在集群中的不同节点上。 2、RDD创建方式: 通过读取一个外部数据集,textFile方法来构建scala> val lines = sc.textFile("README.md")lines: org.apache.spark.rdd.RDD[String] = README.md MapPart原创 2016-11-24 16:03:00 · 999 阅读 · 0 评论 -
spark持久化(缓存)
1、惰性求值: RDD转化过程都是惰性求值的。这意味着在被调用行动操作之前spark不会开始计算,spark会在内部记录下所要求执行的操作的相关信息,我们可以把每个RDD看作我们通过转化操作构建出来的、记录如何计算数据的指定列表。把数据读取到RDD的操作同样是惰性的。2、持久化缓存 SparkRDD是惰性求值的,而有时候我们希望能够多次使用同一个RDD。如果简单地对RDD调用行动操作,Spark原创 2016-12-12 16:48:30 · 1953 阅读 · 0 评论 -
Spark核心概念
从上层来看,spark应用都有一个驱动器程序(driver program)来发起集群上的各种并行操作。驱动器程序包含的应用的main函数,并且定义了集群上的分布式数据集,还对这些分布式是数据集应用了相关操作。 驱动器程序通过一个SparkContext对象来访问Spark。这个对象代表计算集群的一个连接。当我们通过shell来运行spark程序时,shell启动时已经自动创建了一个SparkCo原创 2016-11-21 19:32:00 · 529 阅读 · 0 评论 -
RDD分区
1、获取RDD分区的方式:scala> val rdd = sc.parallelize(Seq((1,2),(3,4),(3,6)))rdd: org.apache.spark.rdd.RDD[(Int, Int)] = ParallelCollectionRDD[28] at parallelize at <console>:30scala> val partitioned = rdd.par原创 2016-12-14 20:56:29 · 513 阅读 · 0 评论 -
Pair RDD行动操作
1、countByKey: 对每个键对应的元素分别计数。scala> val a = Seq((1,2),(3,4),(3,6))a: Seq[(Int, Int)] = List((1,2), (3,4), (3,6))scala> rdd.countByKey()res10: scala.collection.Map[Int,Long] = Map(1 -> 1, 3 -> 2)2、coll原创 2016-12-14 18:05:24 · 394 阅读 · 0 评论 -
eclipse 上Spark 环境搭建中遇到的问题
在eclipse上搭建spark时遇到一个问题,问题如下: More than one scala library found in the build path,后面还有,简单来说意思就是版本不匹配,有多个版本存在。 查了一些资料,解决方法如下: 1.新建scala工程,在建工程时要移除自带的scala版本库具体操作是: 点击next: 点击scala library 然后点击移原创 2016-11-29 19:39:56 · 560 阅读 · 0 评论 -
Spark 运行出现java.lang.OutOfMemoryError: Java heap space
具体错误如截图: 主要就是java内存溢出。 之前尝试过很多方法:/conf中设置spark-java-opts 等,都没有解决问题。其实问题就是JVM在运行时内存不够导致。可以通过命令:./spark-submit --help可以看到大家运行时内存的默认值,有的电脑是512M有的电脑是1024M******:bin duyang$ ./spark-submit --helpUsage:原创 2017-01-06 15:14:51 · 16625 阅读 · 1 评论