Scala&Spark
文章平均质量分 53
scala和spark知识
小陈菜奈-
这个作者很懒,什么都没留下…
展开
-
SPARK-SQL内置函数之时间日期类
http://www.cnblogs.com/feiyumo/p/8760846.html转载 2021-12-22 19:45:11 · 9599 阅读 · 0 评论 -
Spark--累加器
累加器累加器1.实现原理2.系统累加器3.自定义累加器累加器Spark 计算框架为了能够进行高并发和高吞吐的数据处理,封装了三大数据结构,用于处理不同的应用场景。三大数据结构分别是:RDD : 弹性分布式数据集累加器:分布式共享只写变量广播变量:分布式共享只读变量1.实现原理累加器用来把Executor 端变量信息聚合到Driver 端。在Driver 程序中定义的变量,在Executor 端的每个Task 都会得到这个变量的一份新的副本,每个 task 更新这些副本的值后, 传回Driv原创 2021-09-24 17:35:25 · 162 阅读 · 0 评论 -
Spark--RDD文件读取与保存
文件读取与保存Spark 的数据读取及数据保存可以从两个维度来作区分:文件格式以及文件系统。文件格式分为:text 文件、csv 文件、sequence 文件以及Object 文件文件系统分为:本地文件系统、HDFS、HBASE 以及数据库object Spark_rdd_01 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("RDD").setMaster("local[*]原创 2021-09-24 09:53:02 · 677 阅读 · 0 评论 -
Spark--RDD分区器
分区器object Spark_rdd_01 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("RDD").setMaster("local[*]") val sc = new SparkContext(conf) val rdd: RDD[(String, String)] = sc.makeRDD(List( ("痛仰", "再见杰克"),原创 2021-09-23 17:57:04 · 81 阅读 · 0 评论 -
Spark--RDD持久化
RDD持久化引言一. RDD Cache缓存二. RDD CheckPoint检查点三. 缓存和检查点区别引言要实现同一个rdd的分组聚合操作和分组操作通过以下代码会发现代码的重复率很高,性能很低如果一个RDD需要重复使用,那么需要从头再次执行来获取数据RDD对象可以重用,但是数据无法重用这时候我们就可以思考如何能够使RDD的数据也能够重用呢?object Spark_rdd_01 { def main(args: Array[String]): Unit = { val conf原创 2021-09-23 17:13:58 · 160 阅读 · 0 评论 -
Spark--RDD依赖关系
RDD依赖关系一. RDD血缘关系二. RDD依赖关系三. RDD窄依赖四. RDD宽依赖一. RDD血缘关系——>#mermaid-svg-1BaG3IT6EZQABSyp .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-1BaG3IT6EZQABSyp .label text{fill:#333}原创 2021-09-23 14:42:27 · 195 阅读 · 0 评论 -
Spark--RDD序列化
RDD序列化一.闭包检查二.序列化方法和属性一.闭包检查从计算的角度, 算子以外的代码都是在Driver 端执行, 算子里面的代码都是在 Executor 端执行。那么在 scala 的函数式编程中,就会导致算子内经常会用到算子外的数据,这样就形成了闭包的效果,如果使用的算子外的数据无法序列化,就意味着无法传值给Executor 端执行,就会发生错误,所以需要在执行任务计算前,检测闭包内的对象是否可以进行序列化,这个操作我们称之为闭包检测。Scala2.12 版本后闭包编译方式发生了改变object原创 2021-09-23 10:01:44 · 106 阅读 · 2 评论 -
Spark--wordcount的9种实现方式
object Spark_rdd_01 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("RDD").setMaster("local[*]") val sc = new SparkContext(conf) wordcount1(sc) println("-------") wordcount2(sc) println("-------")原创 2021-09-22 17:34:18 · 180 阅读 · 0 评论 -
Spark--RDD转换算子&行动算子
RDD算子一.RDD转换算子1)map2)mapPartitions3)mapPartitionsWithIndex一.RDD转换算子1)map将处理的数据逐条进行映射转换,这里的转换可以是类型的转换,也可以是值的转换。object Spark_rdd_01 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("RDD").setMaster("local[*]")原创 2021-09-22 17:29:35 · 541 阅读 · 0 评论 -
Spark--RDD转换算子案例实操
统计出每一个省份每个广告被点击数量排行的Top3数据:时间戳,省份,城市,用户,广告(中间字段用空格分隔)agent.logobject Spark_rdd_01 { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("RDD").setMaster("local[*]") val sc = new SparkContext(conf) //TODO 案例实操原创 2021-09-22 17:33:42 · 187 阅读 · 0 评论 -
Spark--spark核心编程(RDD的概念)
Spark 计算框架为了能够进行高并发和高吞吐的数据处理,封装了三大数据结构,用于处理不同的应用场景。三大数据结构分别是:RDD : 弹性分布式数据集累加器:分布式共享只写变量广播变量:分布式共享只读变量RDD什么是RDDRDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。弹性存储的弹性:内存与磁盘的自动切换;容错的弹性:数据原创 2021-09-18 16:56:41 · 166 阅读 · 0 评论 -
Spark--分布式计算模拟
客户端向服务器端发送计算任务class Task extends Serializable { val num=List(1,2,3,4) val logic:(Int)=>Int=_*2 //定义计算逻辑 def compute={ //构建计算方法 num.map(logic) }}import java.io.{InputStream, ObjectInputStream}import java.net.{ServerSocket, Socket}o原创 2021-09-10 14:53:11 · 213 阅读 · 2 评论 -
Spark--spark运行架构
原文链接:https://blog.csdn.net/qq_37283909/article/details/89928166一.运行架构Spark 框架的核心是一个计算引擎,整体来说,它采用了标准 master-slave 的结构。如下图所示,它展示了一个Spark执行时的基本结构。图形中的Driver表示master,负责管理整个集群中的作业任务调度。图形中的Executor 则是slave,负责实际执行任务。在此可以做一个比喻:Worker是工头,Cluster Manager:是项目经理,原创 2021-09-08 17:50:03 · 159 阅读 · 0 评论 -
Spark--spark介绍
spark介绍一.Spark概述1.spark是什么2.spark和Hadoop的区别3.MR框架和spark框架如何选择二.Spark核心模块三.Spark运行环境1.Local模式2.Standalone模式3.Yarn模式4.K8S & Mesos 模式5.Windows模式四.Spark端口号一.Spark概述1.spark是什么Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。2.spark和Hadoop的区别HadoopHadoop 是由 java 语言编原创 2021-09-08 15:16:18 · 374 阅读 · 0 评论 -
Spark--IDEA中用Scala编写wordcount
前提准备:pom.xml文件中<scope>provided</scope>全部替换为<scope>complie</scope>否则会报错//文件1.txtHello WorldHello Sparkhello scalahello SparkObject Spark_WordCount{ def main(args:Array[String]):Unit={ //Application //spark框架 //TODO 建立和sp原创 2021-09-08 09:19:30 · 212 阅读 · 0 评论 -
Spark--spark连接hive
连接Hive在spark-shell中实现连接在idea实现连接前提:修改hive/conf/hive-site.xml,添加以下内容将hive/conf/hive-site.xml文件拷贝到spark/conf 路径下<property> <name>hive.server2.thrift.client.user</name> <value>root</value> <description>Username t原创 2021-05-17 06:37:06 · 145 阅读 · 0 评论 -
Spark--spark连接mysql
Scala连接mysqlclass Demo{ private var driver="com.mysql.jdbc.Driver" private var url="jdbc:mysql://192.168.83.4:3306" private var user="root" private var password="ok" def this(driver:String,url:String,userName:String,pwd:String)={ }}原创 2021-05-17 06:06:59 · 607 阅读 · 0 评论 -
Spark--共享变量 accumulator
累加器accumulatorAccumulator是spark提供的累加器,顾名思义,该变量只能够增加只有driver能获取到Accumulator的值(使用value方法),Task只能对其做增加操作(使用 +=)比如需要对Driver端的某个变量做累加操作,累加说的就是,数值相加或字符串的拼接,直接使用foreach是实现不了的,因为该算子无法把Executor累加的结果聚合到Driver端,可以使用Accumulator来实现累加的操作注意:Accumulator只能实现累加,而且只能为D原创 2021-05-16 23:31:18 · 110 阅读 · 0 评论 -
Spark--共享变量Broadcast
Broadcast广播数组val conf:SparkConf=new SparkConf().setMaster("local[*]").setAppName("BroadcastDemo")val sc:SparkContext=SparkContext.getOrCreate(conf)var value=20val broadcastVar=sc.broadcast(value)value=40val rdd=sc.parallelize(Array((1,"leader"),(2,"原创 2021-05-16 20:56:27 · 221 阅读 · 0 评论 -
Spark--设置检查点checkpoint
checkpoint简单来说checkpoint类似于快照checkpoint作用val sc: SparkContext = SparkContext.getOrCreate(conf)sc.setCheckpointDir("file:///D:/checkpointFile") //设置检查点保存的文件名val rdd: RDD[(Int, String)] = sc.parallelize(Array((1,"a"),(2,"b")))rdd.checkpoint() //设置检原创 2021-05-16 16:21:48 · 1050 阅读 · 0 评论 -
Spark--cache/persist设置缓存
设置缓存设置缓存的作用cachepersist设置缓存的作用cache和persist都是用于将一个RDD进行缓存的,这样在之后使用的过程中就不需要重新计算了,可以大大节省程序运行时间cache和persist的区别:cache只有一个默认的缓存级别MEMORY_ONLY ,而persist可以根据情况设置其它的缓存级别。cache缓存RDD,缓存级别为仅在内存中cache方法实际上调用了无参数的persist方法,cache只有一个默认的缓存级别MEMORY_ONLY val原创 2021-05-13 07:06:59 · 638 阅读 · 0 评论 -
Scala函数
def 方法名(参数名:参数类型,参数名:参数类型...):返回值类型{方法主体}object FunctionDemo { def main(args: Array[String]): Unit = { //def 定义声明 main方法名 args 形参 :后是数据类型 :unit是返回值类型def minvalue(a:Int,b:Int):Int={//求最小值函数if(a>b) b else a}}递归函数10!//第一种:传统方法循环def ji(原创 2021-05-09 15:35:53 · 86 阅读 · 0 评论 -
Spark读取csv,json文件
spark读取文件读取csv文件用sparkContext读文件用sparkSession读文件读取json文件读取csv文件要读取的文件用sparkContext读文件代码val conf:SparkConf=new SparkConf().setMaster(“local[*]”).setAppName(“readcsv”)val sc:SparkContext=SparkContext.getOrCreate(conf)val lines:RDD[String]=sc.textFile原创 2021-05-12 23:45:55 · 726 阅读 · 4 评论