`
bit1129
  • 浏览: 1069988 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Scala】分析Spark源代码总结的Scala语法三

 
阅读更多

1.

import org.apache.spark.SparkContext._

表示引用SparkContext类里面的所有成员

import org.apache.spark._

表示应用org.apache.spark包下的所有类

import org.apache.spark.{SparkConf, SparkContext}

表示同一个包下的多个类,可以写到一起

import org.apache.spark.{SparkContext=>SC}

表示在使用SparkContext的地方,可以使用它的别名SC,比如SparkContext sc可以写成SC sc

 

 

 

2.private作用域

private[this] :只有同一个对象中可见,这就是Java的private的含义吧?

 

 

private[spark] class Hello表示什么含义

表示这个类只能在包名中含有spark的类中访问

 

 

如下所示的代码,private[spark],看上去像是指定private的作用域?

 

package org.apache.spark.rdd

import scala.reflect.ClassTag

import org.apache.spark.{Partition, TaskContext}

private[spark]
class MappedRDD[U: ClassTag, T: ClassTag](prev: RDD[T], f: T => U)
  extends RDD[U](prev) {

  override def getPartitions: Array[Partition] = firstParent[T].partitions

  override def compute(split: Partition, context: TaskContext) =
    firstParent[T].iterator(split, context).map(f)
}

 

3. 在ExternalAppendOnlyMap中有如下代码,Iterator((key,value))的含义是把(key,value)这个元素构造成集合,然后返回对应的Iterator?

Iterator这个类,是一个类别名,在package.scala中有如下的定义,

  val Iterator = scala.collection.Iterator

 

 

  /**
   * Insert the given key and value into the map.
   */
  def insert(key: K, value: V): Unit = {
    insertAll(Iterator((key, value)))
  }

 

分享到:
评论

相关推荐

    scala与spark基础

    1. Scala语法基础:包括变量声明、函数定义、类和对象、模式匹配、高阶函数等。 2. Spark核心概念:理解RDD、DataFrame/Dataset,以及如何进行转换和行动操作。 3. Spark SQL:学习如何使用DataFrame API进行数据...

    上手提示:使用新版IDEA+Maven+Scala编写Spark程序

    - **自动下载依赖的源代码**:IDEA的一个强大之处在于它能够自动下载依赖库的源代码,这对于调试和理解第三方库的工作原理非常有用。这一功能可以通过IDEA右下角的Maven配置界面来启用。 - **创建Scala Class**:在...

    实时计算项目(Scala结合spark实现).zip

    1. **源代码**:项目的核心代码,使用Scala编写,可能包含了Spark Job的定义,以及数据处理逻辑。 2. **配置文件**:如`conf`目录下的配置文件,可能包含Spark的配置参数和环境变量。 3. **测试用例**:可能有单元...

    Scala语法入门.pdf

    Scala的源代码会被编译成Java字节码,从而可以在JVM上运行。Scala支持静态类型检查,这有助于在编译期间捕获错误,类似于Java、C和C++等静态类型语言。同时,Scala也吸收了现代函数式编程语言的设计特点,包括不可变...

    windows版scala-2.11.12.zip

    这样,无论你在哪个目录下,都可以通过键入`scala`或`scalac`来启动Scala的交互式Shell或者编译Scala源代码。 Spark是一个用Scala编写的分布式计算框架,它利用Scala的简洁语法和强大的功能来构建大规模数据处理...

    spark项目代码以及数据

    - Scala/Java/Python/R源代码:实现Spark作业逻辑,包括数据读取、转换和写入操作。 - SQL查询:如果使用Spark SQL,可能包含创建DataFrame、执行SQL查询的代码。 - 测试用例:验证代码正确性的单元测试或集成测试。...

    scala核心编程总结

    3. **Packages(包)**:类似于Java中的包,Scala中的包用于组织源代码。通过使用包,开发者可以避免命名冲突,提高代码的组织性和可管理性。 4. **Data Structures(数据结构)**:Scala提供了一套丰富的内置数据...

    scala sdk scala-2.12.3

    1. **编译器**:Scala编译器将Scala源代码转换为Java字节码,使得程序可以在JVM上运行。2.12.3版本的编译器支持最新的语言特性,并对错误报告和编译速度进行了改进。 2. **标准库**:Scala的标准库提供了大量的类和...

    scala-2.9.3.tgz

    Scala的语法简洁,能够更好地支持函数式编程,这使得Spark的代码更加简洁、可读性强,同时也更容易编写出并发和分布式程序。 在Spark集群中,主要组件包括: 1. **Spark Core**:这是Spark的基础,提供了分布式任务...

    scala-2.11.12.rar

    这个版本的Scala对Spark开发者来说尤其重要,因为Spark是用Scala编写的,并且通常会指定一个兼容的Scala版本来确保代码的稳定性和性能。 Spark作为一个大数据处理框架,它主要由以下几个核心组件构成: 1. **Spark...

    scala-intellij-bin-2019.1.9.zip

    1. **语法高亮**:提供Scala源代码的色彩标记,使得代码更易读,有助于快速识别语句类型。 2. **代码补全**:在编写代码时,自动提示可能的函数、变量、类等,提高编码效率。 3. **错误检测**:实时检查代码错误,...

    scala编写,以spark stream方式监听消费kafka的topic,同步写入elasticsearch

    在IT行业中,大数据处理与实时分析是至关重要的领域,而Scala、Kafka、Spark和Elasticsearch这四个组件是构建高效数据流系统的关键技术。在这个项目中,我们使用Scala编程语言,结合Spark Streaming来监听和消费...

    基于spark的外卖大数据平台分析系统.zip

    Spark SQL提供了与SQL兼容的接口,使得数据分析师可以使用熟悉的SQL语法进行复杂的数据查询和分析。例如,可以分析用户购买习惯,找出最受欢迎的菜品和商家,或者挖掘用户的消费模式,为精准营销提供数据支持。 ...

    scala-2.12.8

    然后,他们可以开始学习Scala语法,创建Spark项目,并使用Maven或Sbt等构建工具管理依赖。对于初学者,了解Scala的基本概念如类、对象、特质、模式匹配、高阶函数和不可变数据结构非常重要。对于Spark开发,理解RDD...

    《scala编程》第3版英文版&第3版源码

    资源包含《Scala编程》第3版英文版和第3版源代码,Scala编程第3版,目前是最新版,支持Scala 2.11以上。《Scala编程》是Scala语言的创始人参与编写的,涵盖的语法特性非常全面,并且作者解释了为什么这么设计,有...

    scala:scala代码

    在"scala: scala代码"的描述中,我们可以推测这是一个关于Scala编程语言的学习资源或者项目源代码。 1. **面向对象编程**:Scala是基于Java虚拟机(JVM)的语言,因此它兼容Java的所有类库。它支持类、对象和继承等...

    IDEA的scala插件

    1. **语法高亮与代码提示**:Scala插件为Scala源代码提供语法高亮显示,使代码更易于阅读。同时,它还提供了智能代码补全和错误检测,帮助开发者快速编写和修正代码。 2. **代码导航**:插件支持类、方法、变量等...

    Spark.sql数据库部分的内容

    1. **兼容性**:Spark SQL支持通过Hive的元数据、SQL语法和Hive SerDes与Hive集成,使得在Spark上可以无缝地运行Hive的工作负载。 2. **DataFrame API**:DataFrame API提供了强类型和静态类型的API,支持Scala、...

    spark总结

    ### Scala语法特点及其在Spark中的体现 6. **Scala基础语法**: - **变量声明**:Scala中的变量类型推断使得声明变量更加简洁,例如`val x = 1`。 - **函数定义**:Scala支持高阶函数和匿名函数,可以作为参数...

    scala 2.11.7 安装包

    通过创建SparkSession,用户可以连接到数据源,执行SQL查询,或者进行复杂的数据分析和机器学习任务。 总的来说,这个Scala 2.11.7安装包是学习大数据处理和Spark的一个良好起点,通过深入理解和实践,开发者可以...

Global site tag (gtag.js) - Google Analytics