spark

【Spark】Spark常用方法总结1-创建编程入口(Python版本)

*爱你&永不变心* 提交于 2020-01-30 02:34:29
前言 今天有时间,将自己的笔记分享出来,方便同僚查阅。不断详细与更新中。为了方便,例子都是以Python写的,后续也会有其他语言的版本。 创建编程入口 SparkContext入口 from pyspark import SparkConf , SparkContext if __name__ == '__main__' : conf = SparkConf ( ) . setAppName ( "test" ) . setMaster ( "local" ) sc = SparkContext ( conf = conf ) rdd1 = sc . parallelize ( [ 1 , 2 , 3 , 4 , 5 ] ) rdd2 = rdd1 . map ( lambda x : x + 1 ) print ( rdd2 . collect ( ) ) SparkSession入口 from pyspark . sql import SparkSession , DataFrame if __name__ == '__main__' : spark : SparkSession = SparkSession . builder . appName ( 'test' ) . master ( 'local' ) . enableHiveSupport ( ) .

3.spark 集群模式安装

谁说我不能喝 提交于 2020-01-30 02:13:39
集群模式说明 安装JDK/Scala 安装hadoop 安装Spark 下载 安装 测试 开启独立集群 开启shell 执行语句测试 集群模式说明 如第一节所说,spark依赖的存储引擎和资源调度框架均可以替换,上一节默认都在本地,要改成集群模式,只需要把对应的存储引擎和资源调度框架替换上即可。 这里主要讲独立集群模式(standlone)和yarn集群模式:前者只依赖hdfs作为存储,使用standlone自带的master和worker作为计算资源;后者依赖hdfs作为存储,依赖yarn调度分配计算资源。 安装JDK/Scala 参考前文 安装hadoop 参考前文 standlone模式我们只需要使用HDFS作为存储,所以只需要start-dfs.sh启动分布式文件系统即可;yarn模式还需要start-yarn.sh开启yarn调度集群。 安装Spark 下载 下载位置 http://spark.apache.org/downloads.html 注意选择适合对应hadoop版本的spark,点击下载会自动选择最近的镜像下载 当前安装使用2.3.3版本 安装 解压 如下解压后,进入conf目录 tar -zxf spark-2.3.3-bin-hadoop2.7 配置SPARK_HOME并添加到PATH中 配置 spark-env.sh.template改名为spark

机器学习和大数据优质资料打包下载,宅在家里学习吧!

限于喜欢 提交于 2020-01-29 17:59:24
与其宅在家里无聊,不如利用网络免费资源丰富一下自己的知识储备。这里我总结了一下大数据和AI相关领域的免费资源,这些书籍和资料都是我个人阅读过,一些阅读经验也和大家分享一下。鉴于当前形势,购买书籍不太方便,我已经将这些书籍的电子版打包整理好,文末有下载方式。 机器学习 机器学习 入门机器学习有两本必读的中文书:周志华的《机器学习》和李航的《统计学习方法》。这两本书主要介绍机器学习的统计学原理,深入浅出,是机器学习必不可少的好书。其中,周志华的《机器学习》封面是一个西瓜,内容中大量使用了瓜来举例,因此被称为西瓜书。我认为,对于零基础的朋友,周志华的这本西瓜书入门机器学习更合适。《统计学习方法》适合面试算法工程师前快速地回顾和梳理知识。我建议在有一定的《机器学习》阅读基础后,再学习《统计学习方法》。 深度学习 深度学习领域很多人推荐Ian Goodfellow和Yoshua Bengio等大牛的《Deep Learning》,因其封面是一幅花的油画,被称为花书。中文本由北大张志华老师团队翻译。我自己读过中文版,读了两三章放弃了,因为整本书主要介绍深度学习背后的各种数学推导,即使有一定数学基础的朋友也可能需要花费大量精力啃明白书中的各种数学符号,因此这本书更适合深度学习相关的博士生和研发人员。有英文基础的朋友可以直接在线阅读:http://www.deeplearningbook.org/

RDD编程学习笔记2_键值对RDD_综合案例-计算每种图书的每天平均销量

不羁的心 提交于 2020-01-29 16:03:18
常见操作 reduceByKey和groupByKey的区别 groupByKey只做分组,不会进行汇总 reduceByKey会进行汇总求和(写过map,reduce函数框架的话应该很好理解) groupByKey可以通过利用Iterable的容器函数达到一些reduceByKey的效果 以下三种操作是等价的 ########## 起始操作 ############# scala > val words = Array ( "One" , "Two" , "Two" , "Three" , "Three" , "Three" ) words: Array [ String ] = Array ( One, Two, Two, Three, Three, Three ) scala > val wordRdd = sc.parallelize ( words ) .map ( word = > ( word,1 )) wordRdd: org.apache.spark.rdd.RDD [ ( String, Int ) ] = MapPartitionsRDD [ 40 ] at map at < console > :26 ########## 3种求和方式 ########### scala > val word_add = wordRdd.reduceByKey ( _+_

Spark之 RDD

雨燕双飞 提交于 2020-01-29 11:26:05
简介 RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。   Resilient:弹性,它表示的含义rdd的数据是可以保存在内存中或者是磁盘中。   Distributed:它的数据是分布式存储的,后期方便于进行分布式计算。   Dataset:它就是一个集合,集合里面可以存放了很多个元素。 RDD的属性 1 A list of partitions 一个分区列表,在这里表示一个rdd中有很多个分区(partitions),Spark任务的计算以分区为单位,每一个分区就是一个task。读取hdfs上文件产生的RDD分区数跟文件的block个数相等 rdd1=sc.textFile("/words.txt") 2 A function for computing each split Spark中RDD的计算是以分区为单位的,每个RDD都会实现compute函数以达到这个目的。compute函数会对迭代器进行复合,不需要保存每次计算的结果。 3 A list of dependencies on other RDDs 一个RDD会依赖于其他多个RDD,这里就涉RDD之间的依赖关系,RDD的每次转换都会生成新的RDD,Spark任务的容错机制就是根据这个特性而来

Spark安装及测试

大兔子大兔子 提交于 2020-01-29 05:14:54
链接:https://pan.baidu.com/s/1C7bKh8SPbFTw3zaPR5XNgA 提取码:sgzw 上面是直接提取配置文件一步操作 只需解压 执行是start-spark 关闭是stop-spark.sh 两个进程 链接:https://pan.baidu.com/s/1PMXP3kishCQcBpxzQHyxcg 提取码:l6n1 2.0.2版本 cd /usr/local/ #上传spark tar xf spark-2.0.2-bin-hadoop2.7.tgz mv spark-2.0.2-bin-hadoop2.7 spark vim /etc/profile export SPARK_HOME=/usr/local/spark :$SPARK_HOME/bin source /etc/profile cd spark/conf/ mv spark-env.sh.template spark-env.sh mv slaves.template slaves mv spark-defaults.conf.template spark-defaults.conf #修改配置文件 vim spark-env.sh export SCALA_HOME=/usr/scala export SPARK_HOME=/usr/local/spark export

windows下spark环境搭建

ε祈祈猫儿з 提交于 2020-01-29 03:51:31
在windows下spark的环境搭建步骤如下: 下载 jdk-8u131-windows-x64.exe。若安装路径为E:\Java\,则增加如下的环境变量: JAVA_HOME=E:\Java\jdk1.8.0_131 CLASSPATH=.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\bin; PATH中增加%JAVA_HOME%\bin 下载 最新版scala安装包scala-2.12.8.msi,若安装路径为E:\scala,则增加环境变量E:\scala\bin; 下载 spark执行体spark-2.4.3-bin-hadoop2.7.tgz,若解压路径为E:\spark-2.4.3-bin-hadoop2.7,则增加环境变量E:\spark-2.4.3-bin-hadoop2.7\bin; 下载 hadoop-2.7.3.tar.gz,若解压路径为E:\hadoop-2.7.3,则增加环境变量HADOOP_HOME=E:\hadoop-2.7.3和%HADOOP_HOME%\bin 下载 hadoop对应版本的winutils.exe,放入E:\hadoop-2.7.3\bin目录中,然后运行E:\hadoop-2.7.3\bin\winutils.exe chmod 777 /tmp

spark学习(五)

邮差的信 提交于 2020-01-29 00:05:20
(一)进入spark-shell命令界面(默认使用scala的命令界面)  1,如果进入了spark安装目录则使用、   1,一台机器启动spark:./bin/spark-shell --master <master-url>命令可进入shell界面,master-url参数可为:local[*]使用逻辑CPU多线程启动,local[n],使用n个CPU线程启动   2,集群下启动spark:spark://主机IP:7077(默认端口)   3,在CLASSPATH中添加jar包: ./bin/spark-shell --master local[4] --jars code.jar   4,退出:(:quit)  2,Yarn集群模式:   yarn-client:客户端电脑不能关,调试阶段      yarn-cluster:客户端电脑关了不影响,正常使用阶段     3,sbt是一款Spark用来对scala编写程序进行打包的工具(没安装成功) 来源: https://www.cnblogs.com/lq13035130506/p/12239342.html

Spark RDD理解

元气小坏坏 提交于 2020-01-28 17:14:57
目录 ----RDD简介 ----RDD操作类别 ----RDD分区 ----宽依赖和窄依赖作用 ----RDD分区划分器 ----RDD到调度 返回顶部 RDD简介 RDD是弹性分布式数据集(Resilient Distributed Dataset),能在并行计算阶段进行高效的数据共享;RDD还提供了一种粗粒度接口,该接口会将相同的操作应用到多个数据集上并记录创建数据集的‘血统’,从而在不需要存储真正的数据的情况下,达到高效的容错性。 返回顶部 RDD操作类别 RDD操作大致可分为四类:创建操作、转换操作、控制操作、行动操作;在这些大类的基础上还能划为些细类,下面是大部分的RDD操作,以及其细类划分情况。   返回顶部 RDD分区 分区的多少决定RDD的并行粒度;分区是逻辑概念,分区前后可能存储在同一内存;RDD分区之间存在依赖关系,分为宽依赖和窄依赖 宽依赖:多个子RDD分区依赖一个父RDD分区;如join,groupBy操作; 窄依赖:窄依赖:每个父RDD的分区都至多被被一个子RDD的分区使用;如map操作一对一关系 返回顶部 宽依赖和窄依赖作用 窄依赖允许在单个集群节点上流水线式执行,这个节点可以计算所有父级分区;而且,在窄依赖中,节点失败后的恢复更加高效 宽依赖的继承关系中,单个失败节点可能导致一个RDD的所有祖先RDD中的一些分区丢失,导致计算重新执行 返回顶部

【Spark】RDD详解

情到浓时终转凉″ 提交于 2020-01-28 13:52:26
RDD基础概念: RDD:弹性分布式数据集,逻辑上对数据划分,是不可变的,可分区的,供并行化计算的集合。具有以下特点: 1)RDD由逻辑上的分区组成,分区数据分布在各个节点,每个分区数据可以并行计算。 2)基于“lineage”的高效容错,即编号n的节点故障,可以从编号n-1的节点进行恢复。容错性还要考虑宽/窄依赖。 3)RDD数据在内存与磁盘之间的切换,数据的持久化与内存或者磁盘。checkpoint存储血缘关系 4)数据分片弹性,可以根据需要手动设置分区 RDD分区 1)RDD被划分成很多分区分布在集群中,分区数量决定了并行计算的粒度。 2)原文件是HDFS,RDD的分区数量与Block对应 3)RDD首选位置:考虑数据与计算的关系。如果RDD的分区首选位置是HDFS块所在的位置;当RDD被缓存时,计算会被发送到缓存所在的节点 RDD依赖关系 宽窄依赖是RDD操作的一种依赖关系,判断是否发生Shuffle的标志,划分stage的依据。 宽依赖(Shuffle Dependency):多个子RDD分区依赖一个父RDD分区,例如join操作。 窄依赖(Narrow Dependency):每个父RDD分区最多只被一个子RDD分区依赖,例如map操作,父RDD已被hash策略划分过。 若是协同划分,两个父RDD之间,父RDD与子RDD之间形成的一致性分区安排