您好,登錄后才能下訂單哦!
記載我的spark源碼閱讀火花
知識點:
1、seq:列表,適合存有序重復(fù)數(shù)據(jù),進行快速插入/刪除元素等場景,
Set
是集合,適合存無序非重復(fù)數(shù)據(jù),進行快速查找海量元素等場景
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、沒有括號的函數(shù)
下面是個函數(shù)調(diào)用
hellotheworld //無參數(shù)不括號
4、可變參數(shù)的函數(shù)
(s:*)={ s.foreach(x=>(x)) }
5、函數(shù)的奇葩定義:
(x:y:):=x+y =(x:y:)=>x+y (x:)(y:):=x+y anonymous=(x:y:)=>x+y
6、import:可以在任何地方出現(xiàn),作用范圍是直到包含該語句的塊末尾,好處是避免產(chǎn)生名稱沖突。
SparkConf(loadDefaults: Boolean) Cloneable Logging { SparkConf._
7、this:函數(shù)的末尾最后一句
setExecutorEnv(variables: Seq[(StringString)]): SparkConf = { ((kv) <- variables) { setExecutorEnv(kv) } }
該函數(shù)返回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實現(xiàn)
第一種RDD生產(chǎn)方式,就是從本地的collection生成,可以看見生成的是ParallelCollectionRDD類型的
parallelize[T: ClassTag]( seq: Seq[T]numSlices: Int = defaultParallelism): RDD[T] = withScope { assertNotStopped() ParallelCollectionRDD[T](seqnumSlicesMap[IntSeq[String]]()) }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。