Spark
文章平均质量分 76
艺菲
这个作者很懒,什么都没留下…
展开
-
Learning Spark笔记6-使用key,value
使用Key/ValueKey/Value是Spark中许多操作的常见数据类型。Key/Value RDD通常用于执行聚合,通常我们做一些ETL工作(extract,transform,load)将数据转换为Key/Value格式。Key/Value RDD的操作(例如,计数每个产品的评论,将相同键的数据分在一起,然后将两个不同的RDDs分组在一起)Spark还提供一个高级功原创 2017-04-28 09:51:13 · 1303 阅读 · 0 评论 -
Learning Spark笔记11-加载保存数据
5.加载,然后保存数据工程师希望发现更多的输出格式来适合下游的消费者。数据科学家可能关注数据已经存在的格式。5.1动机Spark提供了一个各种各样输入输出数据源的操作。文件格式与文件系统文件格式:text、JSON、SequenceFIles、protocol buffers文件系统:NFS、HDFS、S3通过SparkSQL结构原创 2017-07-26 11:39:36 · 391 阅读 · 0 评论 -
Learning Spark笔记12-累加器
6高级Spark编程介绍我们介绍两种共享变量:累加器聚合信息,传播变量分发大值。基于我们现有的RDD的转换,我们为有更高成本的任务(如查询数据库)使用批处理操作。在本章中,我们构建了一个使用ham无线电操作员的呼叫日志作为输入的示例。这些日志至少包括联系无线电台的呼号,呼号按国家进行划分,每个国家都有自己范围的呼号,所以我们可以根据呼号查找国家。一些呼叫日志也包括操作员的物原创 2017-09-20 09:46:59 · 444 阅读 · 0 评论 -
Learning Spark笔记13-基于分区工作、通过管道使用外部程序、数字RDD操作
基于每个分区工作使用每个分区的数据可以避免重新设置每个数据项的设置工作。类似的操作如打开数据连接或者创建一个随机数的生成器的设置步骤避免在每个元素上操作。Spark具有每个分区版本的map和foreach,通过让RDD的每个分区只运行一次代码来帮助降低这些操作的成本。让我们回到之前呼号的例子,有一个无线电呼号的在线数据库可以查询到联系人的列表。通过使用分区的操作,我们可以分原创 2017-09-30 11:11:04 · 455 阅读 · 0 评论 -
Learning Spark笔记14-通过集群运行
集群方式运行Spark运行时框架在我们深入了解在集群上运行Spark的细节之前,理解Spark的分布式模式架构是非常有用的。在分布式模式,Spark使用master/slave的架构,那就是一个中央协调者和多个分布式的工作者。中央的协调者称为driver。driver可能与数量非常大的分布式工作者进行沟通,他们被称为executors。driver运行在自己的java进程中原创 2017-10-20 07:41:58 · 256 阅读 · 0 评论 -
Learning Spark笔记15-集群管理器
集群管理器 独立的集群管理器 Spark的独立管理器提供一个简单的方式在集群上运行应用程序。它包括一个master和多个workers,每个worker都分配一定数量的内存和CPU核数。当你提交一个应用程序的时候,你可以选择它的executors使用的内存数,以及所有执行程序的核心总数。 启动独立的集群管理器您可以通过手动启动主人和工作人员,或者在S原创 2017-10-25 08:27:16 · 259 阅读 · 0 评论 -
Learning Spark笔记16-调试Spark
第8章调试Spark使用SparkConf配置SparkSpark中主要的配置机制就是SparkConf类。当你创建一个SparkContext时,SparkConf是必须要有的。Example 8-1. Creating an application using a SparkConf in Python# Construct a confco原创 2017-11-16 07:58:36 · 245 阅读 · 0 评论 -
Learning Spark笔记10-PageRank
PageRank基于Google的Larry Page命名的PageRank算法旨在根据有多少文档具有链接的方式为一组中的每个文档分配重要度(“等级”)。 它可以用于对网页进行排名,当然也可以是科学文章,也可以用于社交网络中的有影响力的用户。PageRank是一个迭代算法,它要执行很多连接,所以它很适合RDD分区这种情况。该算法有两个数据集:一个是(pageID,linkL原创 2017-06-15 09:03:47 · 305 阅读 · 0 评论 -
Learning Spark笔记9-确定RDD分区
确定RDD分区在Scala和java中,可以使用partitioner属性来决定怎么分区。scala.Option对象是Scala的容器类。你可以在Option上调用isDefined() 来检查是否有值,使用get()来获得值。如果存在,那么这个值是spark.Partitioner对象。这个实际上的功能是每个key存入哪个分区。Example 4-24. Det原创 2017-06-01 11:00:14 · 341 阅读 · 0 评论 -
Learning Spark笔记3-传递函数给Spark
传递函数给Spark大多数的Spark转换和一些动作都依赖传递函数计算数据。1.Python 在Python中我们使用3种形式传递函数到Spark。对于较短的函数,我们可以传lambda表达式、通过顶层函数传递或定义本地函数。Example 3-18. Passing functions in Pythonword = rdd.filte原创 2017-04-14 11:46:36 · 1345 阅读 · 0 评论 -
Learning Spark笔记1-Spark介绍
Learning Spark三个优点容易使用-你可以使用你的笔记本开发应用程序,使用高级API让你专注于你的计算内容上。快速的-通用引擎-让你组合多种类型的计算(例如,SQL查询、文本处理、机器学习)Apache SparkSpark被设计为快速的通用的机群计算平台速度方面,Spark扩展Mapreduce支持更多的计算类型,包括原创 2017-04-12 16:22:23 · 371 阅读 · 0 评论 -
Learning Spark笔记2-RDD介绍
RDDs编程一个RDD是一个简单分布式元素集合。在Spark中所有的工作都表达为要么创建新的RDDs,转变已存在RDDs,要么在RDDs中执行计算操作。在后台,Spark会自动在集群中分发RDD中包含的数据,并对你执行的操作进行并行化。RDD基础一个RDD在Spark中是一个简单的不可变的分布式对象集合。每个RDD被分割成多个分区,这些分区可能在集群中的原创 2017-04-14 08:55:34 · 313 阅读 · 0 评论 -
Learning Spark笔记7-聚合
聚合当数据集中的数据是key/value时,通常是使用相同的键汇总所有元素的统计信息。reduceByKey()类似于reduce();他们都是使用函数来合并值。reduceByKey()运行几个并行的reduce操作,每个操作合并相同的键的值。因为数据集有大量的key,reduceByKey()没有实现一个动作返回一个值。相反的,它返回一个新的RDD,包含键和reduce原创 2017-05-04 11:19:55 · 291 阅读 · 0 评论 -
Learning Spark笔记7-数据分组、连接、排序数据
数据分组一个常见的使用方式是按键分组我们的数据-例如,查看所有的客户订单。如果我们的数据已经有key了,那么groupByKey()会使用key来分组我们的数据。在一个RDD上key的类型是K,value的类型是V,我们得到一个RDD的类型是[K,Iterable[V]]。groupBy()用在未成对的数据或者当前key除了相等之外的其他情况的数据。它提供一个函原创 2017-05-15 16:25:16 · 430 阅读 · 0 评论 -
Learning Spark笔记4-常见的转换与动作
基本RDDs不管数据如何,我们先将介绍一下我们可以对RDDs做哪些转换和操作1.元素转换这里有两个常用的转换map()和filter()。map()转换会应用到RDD中的每个元素上,函数的结果是RDD,该RDD中的每个元素都有一个新值。filter转换返回的结果是RDD,该RDD只包含通过filter()的元素。我们可以使用map()原创 2017-04-26 09:36:13 · 598 阅读 · 0 评论 -
Learning Spark笔记5-持久化(缓存)
持久化(缓存)之前讨论过,Spark RDDs是lazily evaluated,我们可能会多次使用同一个RDD。如果这样做的话,每次在RDD上调用一个动作时,Spark都将重新计算RDD以及它的所有依赖。对于迭代算法就特别的耗费资源,下面是一个计数的例子。Example 3-39. Double execution in Scalaval result = i原创 2017-04-26 12:11:14 · 326 阅读 · 0 评论 -
Learning Spark笔记8-数据分区(高级)
数据分区(高级)这章最后我们讨论的Spark另一个特性,怎样控制数据集在节点之间分区。在分布式程序中,通信是很昂贵的,减少网络流量可以大大提高性能,Spark可以控制RDD分区来减少通信。分区也不是适用于所有的应用,例如如果一个RDD只扫描一次,那么就没有预先进行分区。Spark分区在所有的key/value的RDDs中都是可用的,并可以根据每个key的功能将元素进行分组。原创 2017-05-18 11:52:19 · 364 阅读 · 0 评论 -
Learning Spark笔记17-Spark SQL
第9章Spark SQLSpark SQL提供3个主要的功能:1.可以从结构化的数据源中加载数据(例如,JSON,Hive和Parquet)2.可以使用SQL查询数据,无论是在Spark程序内还是使用诸如JDBC或ODBC这种连接器。3.使用Spark程序的时候,Spark SQL提供了丰富的集成,在SQL和Python或Java或Scala代码,包括可以连接RDDs和SQ原创 2017-11-24 08:29:24 · 423 阅读 · 0 评论