spark

Spark创建Dataframe的方法

为君一笑 提交于 2020-01-13 09:00:05
通过RDD创建dataframe的方式1: 把rdd[T]变成 RDD[case class类型]就可以直接toDF 通过RDD[tuple]创建dataframe 通过RDD[JavaBean]创建dataframe 通过RDD[scala bean] 创建dataframe 通过 RDD[Row] 来创建dataframe 1.通过RDD创建dataframe import org.apache.spark.rdd.RDD import org.apache.spark.sql.{DataFrame, SparkSession} /** * @description: * 通过RDD创建dataframe的方式1: 把rdd[T]变成 RDD[case class类型]就可以直接toDF */ // 1,张飞,21,北京,80.0 case class Stu(id:Int,name:String,age:Int,city:String,score:Double) object Demo2_CreateDF_1 { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() .appName(this.getClass.getSimpleName) .master("local[*]")

Spark shuffle 优化

非 Y 不嫁゛ 提交于 2020-01-13 06:47:13
spark.shuffle.file.buffer默认值:32k参数说明:该参数用于设置shuffle write task的BufferedOutputStream的buffer缓冲大小。将数据写到磁盘文件之前,会先写入buffer缓冲中,待缓冲写满之后,才会溢写到磁盘。调优建议:如果作业可用的内存资源较为充足的话,可以适当增加这个参数的大小(比如64k),从而减少shuffle write过程中溢写磁盘文件的次数,也就可以减少磁盘IO次数,进而提升性能。在实践中发现,合理调节该参数,性能会有1%~5%的提升。spark.reducer.maxSizeInFlight默认值:48m参数说明:该参数用于设置shuffle read task的buffer缓冲大小,而这个buffer缓冲决定了每次能够拉取多少数据。调优建议:如果作业可用的内存资源较为充足的话,可以适当增加这个参数的大小(比如96m),从而减少拉取数据的次数,也就可以减少网络传输的次数,进而提升性能。在实践中发现,合理调节该参数,性能会有1%~5%的提升。spark.shuffle.io.maxRetries默认值:3参数说明:shuffle read task从shuffle write task所在节点拉取属于自己的数据时,如果因为网络异常导致拉取失败,是会自动进行重试的。该参数就代表了可以重试的最大次数

Windows32或64位下载安装配置Spark

孤街浪徒 提交于 2020-01-13 06:22:51
【学习笔记】 Windows 32或64位下载安装配置Spark: 1)下载地址:http://spark.apache.org/downloads.html 马克-to-win @ 马克java社区:选择需要下载的Spark版本,我选的是当前最新的版本2.2.0。因为我已经安装了Hadoop 2.7.4版本的,所以我选择对应的Pre-built for Hadoop 2.7 and later。注意网站上说scala要求2.11版本以上。(在我的新机器上,是没有预先装scala的,先装的spark, 证明这么装的顺序是可行的) ​ 2)配置: 马克-to-win @ 马克java社区:解压spark-2.2.0-bin-hadoop2.7.tgz到本机一个目录,例如C:\Users\dell\Downloads\spark-2.2.0-bin-hadoop2.7\spark-2.2.0-bin-hadoop2.7,参考hadoop那节,配置环境变量%SPARK_HOME%,再有把%SPARK_HOME%/bin加入到Path里面, 我自己建了一个目录叫myrun,因为在哪个目录运行,就会在其中产生metastore_db这个目录,所以为了运行,我专门建了一个目录来运行。 ​ 3)启动测试: a)启动Hadoop b)在cmd窗口运行spark-shell,出现下图代表OK。 ​

揭开Spark的前世今生

旧街凉风 提交于 2020-01-13 05:35:19
一.了解spark **Apache Spark™**是用于大规模数据处理的统一分析引擎。 Apache Spark™ is a unified analytics engine for large-scale data processing. spark, 快速 、 通用 , 可扩展数据分引擎 : 二.Spark的诞生史 2009伯克利大学诞生 2010开源 2013年6月成为apache的孵化项目 2014年2月正式成为apache的顶级的项目 三.Spark框架里面的组成 Spark Core: 最核心,最重要的 Spark SQL: 类似hive的,一般用来离线数据处理 Spark Streaming: 做实时计算 Spark MLlib: 数据分析,建模 Spark Graphx :图计算 四.Spark特点: 速度: spark和Hadoop的却别是什么? spark和mapreduce:为什么spark的速度快 spark是基于内存计算,spark不落盘,而mapreduce要经过六次落盘 易用 :Scala、Java、python、R、SQL 统一的 :sparkSQL,Spark Streaming、spark Mllib (可以用同一集群,便于维护) 兼容性 : 五.Spark官网: Spark闪电般的统一分析引擎 速度 运行工作负载的速度提高了100倍。

0485-如何在代码中指定PySpark的Python运行环境

本小妞迷上赌 提交于 2020-01-12 15:56:25
温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图。 Fayson的github: https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1 文档编写目的 Fayson在前面的文章《 0483-如何指定PySpark的Python运行环境 》介绍了使用Spark2-submit提交时指定Python的运行环境。也有部分用户需要在PySpark代码中指定Python的运行环境,那本篇文章Fayson主要介绍如何在代码中指定PySpark的Python运行环境。 测试环境 1.RedHat7.2 2.CM和CDH版本为5.15.0 3.Python2.7.5和Python3.6 2 准备Python环境 在这里Fayson准备两个环境Python2和Python3,如下为环境准备步骤: 1.在Anaconda官网下载Python2和Python3的两个安装包,安装过程Fayson这里就不在介绍了 Anaconda3-5.2.0-Linux-x86_64.sh和Anaconda2-5.3.1-Linux-x86_64.sh两个安装包 2.将Python2和Pythonn3两个环境打包,进入到Python2和Python3的安装目录下 使用zip命令将两个环境分别打包 [ root@cdh05

Windows7下安装pyspark

半世苍凉 提交于 2020-01-12 09:18:31
安装需要如下东西: java jdk-8u181-windows-x64.exe spark spark-2.1.3-bin-hadoop2.7 hadoop(版本要与spark的一致,这里都是hadoop2.7) hadoop-2.7.7 Anaconda(这个是为了预防python出现api-ms-win-crt-runtime-l1-1-0.dll错误,且安装了 vc_redist.2015.exe 还无法解决时需要安装) Anaconda3-2.4.1-Windows-x86_64.exe python python-3.5.4-amd64.exe pycharm pycharm-community-2016.1.4.exe 安装JDK ** 千万不要用默认路径Program Files,这个有空格后面会很坑!新建路径在C:\Java,Java安装在这里!** 新建环境变量名:JAVA_HOME,变量值:C:\Java\jdk1.8.0_11 打开PATH,添加变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin 新建环境变量名:CLASSPATH,变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar 在 cmd 中输入 java 出现如下信息就算安装成功了 安装spark 在C盘新建

Spark环境搭建

大憨熊 提交于 2020-01-12 04:39:24
Windows下Spark环境搭建 环境准备: JDK环境配置 Scala环境配置 Spark环境配置 Hadoop环境配置 各个软件的版本: JDK1.8 Scala2.11.8 Spark 2.2.0 Hadoop 2.6.0 Java环境配置 去 JDK 官网下载JDK1.8,然后配置JAVA_HOME和PATH。 JAVA_HOME: PATH: 测试: Scala环境配置 去官网下载 Scala ,不过官网都是最新版本,可以选择旧版下载,下载完成后进行安装,和JAVA一样配置环境变量 SCALA_HOME: SCALA_PATH: SCALA_TEST: Spark环境配置 去官网下载 Spark ,要选择对应的版本 然后解压到一个指定的目录,和上面的一样创建SPARK_HOME和配置path环境变量,接着测试一下 因为我配置好了Hadoop,所以Spark看起来没有错,如果没有配置Hadoop,会出现如下错误: Hadoop环境配置 去 CDH5 找到 hadoop-2.6.0-cdh5.9.3 解压到特定的文件夹,然后配种HADOOP_HOME,解压后的目录如下 接着需要下载 winutils ,下载后吧Hadoop的bin目录里的文件已换成winutils的bin目录里的文件,这样整个环境就搭建成功了 Spark环境测试 在终端执行spark-shell命令

Spark入门(七)--Spark的intersection、subtract、union和distinc

只愿长相守 提交于 2020-01-12 01:51:39
Spark的intersection intersection顾名思义,他是指交叉的。当两个RDD进行intersection后,将保留两者共有的。因此对于RDD1.intersection(RDD2) 和RDD2.intersection(RDD1) 。应该是一致的。 比如对于,List1 = {1,2,3,4,5} 和 List1 = {3,4,5,6,7},对于包含这两个List的RDD来说,他们进行一次intersection应该得到result={3,4,5} Spark的subtract subtract则和intersection不同,他是找出两者之间不一致的内容。 比如对于,List1 = {1,2,3,4,5} 和 List1 = {3,4,5,6,7}他们进行一次subtract得到的结果是跟顺序有关的。 list1.subtract(list2) 结果应该为 1 2 而对于 list2.subtract(list1) 结果应该为 6 7 Spark的union union最好理解,他是把两个RDD进行整合,但不考虑其中重复的情况。比如对于,List1 = {1,2,3,4,5} 和 List1 = {3,4,5,6,7}他们进行一次union得到的结果是跟顺序无关的。结果应该为 result = {1,2,3,4,5,3,4,5,6,7}

Spark Streaming官方文档翻译基本概念之初始化与Dstream

家住魔仙堡 提交于 2020-01-12 01:50:57
Spark Streaming官方文档翻译Spark Streaming总览 Spark Streaming官方文档翻译基本概念之初始化与Dstream Spark Streaming官方文档翻译基本概念之输入数据流和接收器 Spark Streaming官方文档翻译基本概念之转换操作 Spark Streaming官方文档翻译基本概念之输出操作 Spark Streaming官方文档翻译基本概念之sql与Mllib Spark Streaming官方文档基本概念之缓存与检查点 Spark Streaming官方文档翻译基本概念之累加器、广播变量和检查点 Spark Streaming官方文档翻译Spark Streaming应用之部署,升级,监控 Spark Streaming官方文档翻译Spark Streaming性能调优 Spark Streaming官方文档翻译Spark Streaming容错 Spark Streaming官方文档翻译Spark Streaming +Kafka 集成指南 Spark Streaming官方文档翻译Spark Streaming自定义接收器 基本概念 接下来,我们将脱离简单的示例,并详细介绍Spark Streaming的基础知识。 链接(Linking) 与Spark相似,可以通过Maven Central使用Spark

Spark入门(六)--Spark的combineByKey、sortBykey

大兔子大兔子 提交于 2020-01-12 01:35:42
spark的combineByKey combineByKey的特点 combineByKey的强大之处,在于提供了三个函数操作来操作一个函数。第一个函数,是对元数据处理,从而获得一个键值对。第二个函数,是对键值键值对进行一对一的操作,即一个键值对对应一个输出,且这里是根据key进行整合。第三个函数是对key相同的键值对进行操作,有点像reduceByKey,但真正实现又有着很大的不同。 在 Spark入门(五)--Spark的reduce和reduceByKey 中,我们用reduce进行求平均值。用combineByKey我们则可以求比平均值更为丰富的事情。现在有一个数据集,每一行数据包括一个a-z字母和一个整数,其中字母和整数之间以空格分隔。现在要求得每个字母的平均数。这个场景有点像多个学生,每个学生多门成绩,求得学生的平均分。但这里将问题简化,其中数据集放在grades中。数据集以及下面的代码都可以在 github 上下载。 combineByKey求多个平均值 scala实现 import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.{SparkConf, SparkContext} object SparkCombineByKey { def main(args: Array