记载我的spark源码阅读火花
知识点:
1、seq:列表,适合存有序重复数据,进行快速插入/删除元素等场景,
Set
是集合,适合存无序非重复数据,进行快速查找海量元素等场景
memoryKeys = Seq(
)
2、private 声明变量为私有
private val hadoopConf = SparkHadoopUtil.get.newConfiguration(conf)
private[this] val value
private[spark],声明变量为私有,并且在包spark是可见的,这里的[spark],是一种保护的作用域。
这是Master的类声明,同样在master域里
private[master] class Master(
3、没有括号的函数
下面是个函数调用
hellotheworld //无参数不括号
(s:*)={
s.foreach(x=>(x))
}
(x:y:):=x+y =(x:y:)=>x+y (x:)(y:):=x+y anonymous=(x:y:)=>x+y
6、import:可以在任何地方出现,作用范围是直到包含该语句的块末尾,好处是避免产生名称冲突。
SparkConf(loadDefaults: Boolean) Cloneable Logging {
SparkConf._
setExecutorEnv(variables: Seq[(StringString)]): SparkConf = {
((kv) <- variables) {
setExecutorEnv(kv)
}
}
该函数返回SparkConf类型的值
8、模式匹配之master配置类型
master match{
case "local" =>
case LOCAL_N_REGEX(threads) =>
case LOCAL_N_FAILURES_REGEX(threads, maxFailures) =>
case SPARK_REGEX(sparkUrl) =>
case LOCAL_CLUSTER_REGEX(numSlaves, coresPerSlave, memoryPerSlave) =>
case "yarn-standalone" | "yarn-cluster" =>
case "yarn-client" =>
case SIMR_REGEX(simrUrl) =>
case mesosUrl @ MESOS_REGEX(_) =>
可见有上述几种配置类型
9、scala的Parallelize实现
第一种RDD生产方式,就是从本地的collection生成,可以看见生成的是ParallelCollectionRDD类型的
parallelize[T: ClassTag](
seq: Seq[T]numSlices: Int = defaultParallelism): RDD[T] = withScope {
assertNotStopped()
ParallelCollectionRDD[T](seqnumSlicesMap[IntSeq[String]]())
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。