Spark快速大数据分析---二章(day01)

1、SparkSession

        SparkSession对象提供与下层Spark功能交互的入口。允许用户用Spark的API编写Spark程序。在交互式Spark-shell中,Spark驱动器已经初始化了一个SparkSession对象,但在Spark应用程序中,需要自行创建一个Spark程序。

2、转化操作、行动操作以及惰性求值

Spark对分布式数据的操作可以分为:转化操作、行动操作。

转化操作是将Spark DataFrame转化为新的DataFrame,而不改变原有数据的操作,这赋予了DataFrame不可变的属性。所有的转化操作都是惰性求值的,具体结果不会立即计算出来。spark只是将具体转化关系作为血缘。

行动操作会出发所记录下来所有转化操作的实际求值。

惰性求值:Spark的惰性求值是指在计算过程中,对于中间结果,只有当它们被使用时才会进行计算。这意味着在执行任务时,Spark会根据需要逐步计算出最终结果,而不是一次性计算出所有中间结果。这种惰性求值的特性使得Spark能够更有效地利用计算资源,提高计算效率。

3、窄转化与宽转化

根据以来关系属于窄依赖还是宽依赖,转化操作可以分为两类

如果输出中的单个数据分区是否单个输入分区计算得到的那么该转化操作就是窄转化。

跨转化要从其他分区读取数据并进行整合

4、实例(统计M&M巧克力豆)

①展示所有州巧克力都的颜色并将结果按照降序排列

②通过过滤得到加利福尼亚州的数据

package example

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.SparkSession.setDefaultSession
import org.apache.spark.sql.functions.{col, desc}

//根据题意(DSL)
//展示所有州MM巧克力豆的颜色并展示聚合结果按照降序排列
//通过过滤得到加利福尼亚州的数据
object SparkSql01_exam1_text {
  def main(args: Array[String]): Unit = {
    val spark = SparkSession
      .builder()
      .master("local[*]")
      .appName("M&M巧克力豆")
      .getOrCreate()

    //读取csv文件
//    val mnmDF = spark.read.csv("D:\\cui\\SparkSQL1\\src\\main\\resources\\input\\mnm_dataset.csv")
    val mnmDF = spark.read.format("csv")
      .option("header",true)
      .option("inferSchema",true)
      .load("D:\\cui\\SparkSQL1\\src\\main\\resources\\input\\mnm_dataset.csv")

    //展示读取后的DATAFRAME
    mnmDF.show()

    val mnmCountDF = mnmDF.select("*")
      .groupBy("State","Color","Count")
      .sum("Count")
      .orderBy(desc("sum(Count)"))

    //展示所有州的数据
    mnmCountDF.show()

    //过滤数据得到加利福尼亚州的数据(CA)
    val mnmCaCountDF = mnmDF.select("*")
      .where(col("State") === "CA")
      .groupBy("State","Color")
      .sum("Count")
      .orderBy(desc("sum(Count)"))
//
//    val mnmCaCountDF = mnmCountDF.select("*")
//      .where(col("State") === "CA")
//      .orderBy("Count")

    mnmCaCountDF.show()

    mnmCountDF.show()

    spark.stop()
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Spark 基础环境是指安装和配置 Spark 所需的软件和硬件环境。Spark 运行需要 Java 环境和 Hadoop 环境,同时也需要配置 Spark 的相关参数,如内存大小、CPU 核数等。在安装和配置好基础环境后,我们才能使用 Spark 进行数据处理和分析。 ### 回答2: Spark是一个快速、可扩展且容错的大数据处理框架,提供了丰富的API和工具,可以处理大规模的数据集。 搭建Spark基础环境包括以下几个步骤: 1. 安装Java:Spark是基于Java开发的,因此首先需要安装Java开发环境。可以从Oracle官网下载并安装适合操作系统的Java版本。 2. 下载Spark:在Apache Spark官网下载最新版本的Spark压缩包,并解压到指定目录。 3. 配置环境变量:将Spark的bin目录添加到系统的环境变量中。这样可以方便地在任意位置运行Spark的命令。 4. 配置Spark集群:如果需要在多台机器上运行Spark应用程序,需要进行集群配置。首先,在每台机器上安装好Java,并将Spark解压到相同的目录。然后,编辑Spark的配置文件,设置集群的主节点和从节点。 5. 验证安装:通过在终端运行spark-shell命令,验证Spark是否正确安装。spark-shell命令会启动一个Scala解释器,并连接到Spark集群。 6. 运行第一个Spark应用程序:编写一个简单的Spark应用程序,如WordCount,用于统计文本文件中单词的个数。将程序保存为Scala文件,并使用spark-submit命令来运行。 以上就是搭建Spark基础环境的主要步骤。搭建好Spark环境后,可以使用Spark提供的丰富API和工具来进行大数据处理和分析,如数据清洗、转换、机器学习等。Spark的功能强大且易于使用,适用于各种大规模数据处理场景。 ### 回答3: Spark是一个快速通用的集群计算系统,它提供了高效的数据处理和分析能力。要运行Spark,我们需要配置和搭建一些基础环境。 首先,我们需要安装Java JDK。Spark运行在Java虚拟机上,因此我们需要安装适当版本的Java开发工具包。通常建议使用Oracle JDK的最新稳定版本,然后设置JAVA_HOME环境变量。 其次,我们需要安装Spark本身。Spark官方网站提供了预编译的二进制发行版,我们可以从网站上下载并解压缩到我们喜欢的位置。然后,我们可以设置SPARK_HOME环境变量,以便在终端窗口中使用Spark命令。 接下来,我们需要选择一个合适的集群管理器来运行Spark应用程序,比如Standalone模式、Hadoop YARN和Apache Mesos等。我们需要根据自己的需求进行选择和配置。例如,在Standalone模式下,我们需要启动一个Spark Master和多个Spark Worker来管理和运行任务。 最后,在运行Spark应用程序之前,我们需要通过编写一个Spark应用程序来使用Spark的功能。Spark提供了Java、Scala和Python等多种编程语言的API。我们可以使用任何一种编程语言来编写应用程序并在Spark上运行。 总之,Spark基础环境搭建包括安装Java JDK、安装Spark本身、选择和配置集群管理器,以及编写Spark应用程序。搭建好这些基础环境后,我们就可以开始使用Spark进行快速、高效的集群计算了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值