Spark学习
a627082796
这个作者很懒,什么都没留下…
展开
-
Spark中RDD、DataFrame、DataSet
RDD弹性分布式数据集DataFrame,更像传统数据库的二维表格,除了数据以外,还记录数据的结构信息,即schema,。同时,与hive类似,DataFrame也支持嵌套数据类型(struct,array,map),从API易用性来看,DataFrameAPI提供的时一套高层的关系操作,比函数式的RDDAPI更加友好,门槛更低。DataSet是DataFrame API的一个扩展,是Spark最新的数据抽象用户友好的API峰哥,机油类型安全检查,也有查询优化特...原创 2020-12-27 13:33:33 · 185 阅读 · 0 评论 -
spark case关键字详解
spark中case关键字,很有用,很强大,case语法与java中的switch语法类似,但比switch更强大。一、case做模式匹配1.正则匹配val Pattern="(a.*)".r// val v1="spark"; val r=v1 match { case Pattern(v1)=> "start" case "1"=&...原创 2019-02-21 11:26:00 · 5712 阅读 · 0 评论 -
spark 第一个简单实例wordcount
背景:因为是在已经搭好的Maven项目上进行开发,环境是集群环境,不需要再配置,只是讲一下写时遇到的坑。1. 因为是采用idea开发,直接在maven项目上新建一个文件夹SparkWordCount和文件SparkWordCount.scala,利用maven打包后,spark-submit提交任务后,一直报错:19/02/20 19:34:23 ERROR yarn.Applica...原创 2019-02-21 10:05:44 · 1270 阅读 · 0 评论 -
spark scala broadcast variable广播变量和Accumulator累加器
一、简介通常情况下,当1个function传递到1个spark operation(例如:map、reduce)时,这个function是在远程的集群node上被执行的。这些变量会被复制到每一台机器,在远程机器上不会更新这些变量,然后又传送回driver program。跨tasks共享读写变量的支持,通常是低效率的。然而,spark提供了2种通用的共享变量模式:广播变量和累加器。1.1 ...原创 2019-02-25 12:06:18 · 571 阅读 · 0 评论 -
spark 初学scala中的main方法及其参数
一:类和对象1. scala不用class作为类的关键字,而是使用object, object是scala中的静态类,不是对象;2.object作为scala中的一个关键字,相当于java中的public static class这样一个修饰符,意思是object中成员是静态的 所以例子中的main方法是静态的,不需要实例就可以直接被虚拟机调用,也是JVM平台的程序入口必备条件;3.“...原创 2019-02-19 10:57:39 · 6370 阅读 · 1 评论 -
spark-submit spark应用程序提交和运行
用于提交spark jarUsage: spark-submit [option] <app jar | python file> [app option]Options:--master Master_URL spark://host:port, mesos://host:port,yarn,or local --deploy-mode DEPLOY_MODE...原创 2019-02-19 10:13:13 · 1396 阅读 · 0 评论 -
spark scala 中下划线_的各种用法
本文只是列出一些常见的用法,可能不是全部将方法转换为函数请参见《Scala中Method方法和Function函数的区别》作为函数的参数一个匿名的函数传递给一个方法或者函数的时候,scala会尽量推断出参数类型。例如一个完整的匿名函数作为参数可以写为scala> def compute(f: (Double)=>Double) = f(3)compute: (f...转载 2019-02-22 16:11:20 · 2963 阅读 · 0 评论 -
spark scala中的sealed关键字
sealed关键字在scala的集合和模式匹配上面应用较多,本篇文章说明sealed的使用场景以及为什么使用sealed。A sealed class cannot have any new subclasses added except the ones in the same file.这是sealed关键字比较官方的解释,意思是只在同一个文件中的添加其子类,除此以外不能有任何的子类(区别...转载 2019-02-22 15:50:42 · 648 阅读 · 0 评论 -
spark scala中object、class和trait的区别
一、object1. 在Scala声明private变量时,Scala编译器会自动生成get,set,在Scala中变量是需要初始化的,如果不声明private默认是public的2. scala 中没有 static 关键字,在scala中没有静态方法和静态字段,所以在scala中可以用object来实现这些功能,直接用对象名调用的方法都是采用这种实现方式,例如Array.toStrin...原创 2019-02-22 15:15:27 · 2021 阅读 · 0 评论 -
spark scala中的var 和val、def区别对比
Val 和Var 的区别一、最直观的就是:val定义的变量不能被再次赋值,而var定义的可以,见下图scala> val s=10s: Int = 10scala> s=11<console>:27: error: reassignment to val s=11 ^scala> var a=10a: In...原创 2019-02-22 11:02:59 · 6986 阅读 · 0 评论 -
spark scala中的override关键字
Override表示重写字段或者方法override是覆盖的意思,在很多语言中都有(或为:overwrite),在scala中,override是非常常见的,在类继承方面,它和java不一样,不是可写可不写的了,而是必须写的。在java1.5中引入了override注解,但不强制使用。而scala如果不写而覆盖了对应的属性或者方法的话,编译器就会报错了。在scala里,类继承有两点限制...原创 2019-02-22 10:06:08 · 1530 阅读 · 0 评论 -
spark spark-submit执行的结果映射到hive表中
1. spark执行的输出结果如何保存通常把hive表对应的路径当做spark执行的输出目录:/user/hive/warehouse/${hive_db_name}.db/$hive_tb_name一般日志的映射hive表要建成带分区的格式/user/hive/warehouse/${hive_db_name}.db/$hive_tb_name/dt=${dt}/hour=${dt}...原创 2019-02-21 19:52:06 · 993 阅读 · 0 评论 -
spark scala中的Option、Some、None
一、避免null的使用大多数语言都有一个特殊的关键字或者对象来表示一个对象引用的是“无”,在Java,它是null。在Java 里,null 是一个关键字,不是一个对象,所以对它调用任何方法都是非法的。但是这对语言设计者来说是一件令人疑惑的选择。为什么要在程序员希望返回一个对象的时候返回一个关键字呢?二、Scala的Option的类型Option是针对Map等集合操作的为了让所有东西都...转载 2019-02-21 14:46:37 · 3896 阅读 · 0 评论