摘要: java8内置四大函数 为了免去用户每次使用Lambda表达式时,都自行创建函数式接口,Java提供了4大核心内置函数式接口 * Consumer :消费型接口 * void accept(T t); * *Supplier :供给型接口 * ... 阅读全文
posted @ 2018-01-02 00:00 appointint 阅读(931) 评论(0) 推荐(1) 编辑
摘要: 流的特点 1. 只能遍历一次 我们可以把流想象成一条流水线,流水线的源头是我们的数据源(一个集合),数据源中的元素依次被输送到流水线上,我们可以在流水线上对元素进行各种操作。一旦元素走到了流水线的另一头,那么这些元素就被“消费掉了”,我们无法再对这个流进行操作。当然,我们可以... 阅读全文
posted @ 2018-01-02 00:00 appointint 阅读(299) 评论(0) 推荐(0) 编辑
摘要: 开两个命令行窗口: 服务端:nc –lp 8888 //客户端:nc localhost 8888 在默认情况下,Spark应用程序的日志级别是INFO的,我们可以自定义Spark应用程序的日志输出级别,可以到$SPARK_HOME/conf/log4j.properties文件... 阅读全文
posted @ 2018-01-02 00:00 appointint 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 分组操作 在分布式程序中,通信的代价是很大的,因此控制数据分布以获得最少的网络传输可以极大地提升整体性能。和单节点的程序需要为记录集合选择合适的数据结构一样,Spark 程序可以通过控制RDD 分区方式来减少通信开销。 分区并不是对所有应用都有好处的——比如,如果给定RDD 只需要被... 阅读全文
posted @ 2018-01-02 00:00 appointint 阅读(176) 评论(0) 推荐(0) 编辑
摘要: && 对于键值对类型的RDD,如果键是自定义类型(比如:Person),则需要重写其hashCode 和equals方法。 1、 intersection 底层用的是groupByKey;subtract底层用的是subtractByKey; import java.net.Malf... 阅读全文
posted @ 2018-01-02 00:00 appointint 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 1、 persisit机制 import java.util.Iterator;import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaPairRDD; import org.apache.s... 阅读全文
posted @ 2018-01-02 00:00 appointint 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 1、 广播&累加器 我们传递给Spark的函数,如map(),或者filter()的判断条件函数,能够利用定义在函数之外的变量,但是集群中的每一个task都会得到变量的一个副本,并且task在对变量进行的更新不会被返回给driver。而Spark的两种共享变量:累加器(accumul... 阅读全文
posted @ 2018-01-02 00:00 appointint 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 函数式编程第一步 (一)接口实现 一、 Lambda表达式 Lambda是一个匿名函数,可以把Lambda表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。 二、La... 阅读全文
posted @ 2018-01-02 00:00 appointint 阅读(160) 评论(0) 推荐(0) 编辑