1-2 Spark 快速入门
2024-01-04 10:35:29 4 举报
AI智能生成
登录查看完整内容
了解完spark 的概述之后, 首先就快速体验下spark 的入门hello world.
作者其他创作
大纲/内容
基本
有关Dataset操作的更多信息
缓存
使用 Spark Shell 进行交互式分析:
独立的应用程序
其他
本教程提供了 Spark 的使用快速介绍。我们将首先通过 Spark 的交互式 shell(Python 或 Scala)介绍 API,然后展示如何使用 Java、Scala 和 Python 编写应用程序。要按照本指南进行操作,请首先从Spark 网站下载 Spark 的打包版本 。由于我们不会使用 HDFS,因此您可以下载适用于任何版本 Hadoop 的软件包。需要注意的是,在Spark 2.0之前,Spark的主要编程接口是弹性分布式数据集(RDD)。Spark 2.0 之后,RDD 被 Dataset 取代,Dataset 与 RDD 一样是强类型的,但在底层有更丰富的优化。仍然支持 RDD 接口,您可以在RDD 编程指南中获得更完整的参考。但是,我们强烈建议您改用Dataset,它比RDD具有更好的性能。请参阅SQL 编程指南以获取有关Dataset的更多信息。
快速开始
Spark 的 shell 提供了一种学习 API 的简单方法,以及交互式分析数据的强大工具。它可以在 Scala(在 Java VM 上运行,因此是使用现有 Java 库的好方法)或 Python 中使用。通过在 Spark 目录中运行以下命令来启动它:./bin/spark-shellSpark 的主要抽象是称为数据集的分布式项目集合。可以从 Hadoop 输入格式(例如 HDFS 文件)或通过转换其他数据集来创建数据集。让我们根据 Spark 源目录中的 README 文件的文本创建一个新的数据集:scala> val textFile = spark.read.textFile(\"README.md\
数据集操作和转换可用于更复杂的计算。假设我们想要找到单词最多的行:scala> textFile.map(line => line.split(\" \
说明, identity 是匿名函数, 函数作用是对传入的值原样返回,此处表示key不变。
Spark 还支持将数据集拉入集群范围的内存缓存中。当重复访问数据时(例如查询小型“热”数据集或运行 PageRank 等迭代算法时),这非常有用。作为一个简单的示例,让我们将linesWithSpark数据集标记为要缓存:scala> linesWithSpark.cache()res7: linesWithSpark.type = [value: string]scala> linesWithSpark.count()res8: Long = 15scala> linesWithSpark.count()res9: Long = 15使用 Spark 来探索和缓存 100 行文本文件似乎很愚蠢。有趣的是,这些相同的函数可以用于非常大的数据集,即使它们分布在数十或数百个节点上。您还可以通过连接bin/spark-shell到集群以交互方式执行此操作,如RDD 编程指南中所述。
使用 Spark Shell 进行交互式分析
假设我们希望使用 Spark API 编写一个独立的应用程序。我们将演练一个使用 Scala(使用 sbt)、Java(使用 Maven)和 Python(pip)的简单应用程序。我们将在 Scala 中创建一个非常简单的 Spark 应用程序——事实上,它非常简单,因此被命名为SimpleApp.scala:/* SimpleApp.scala */import org.apache.spark.sql.SparkSessionobject SimpleApp { def main(args: Array[String]) { val logFile = \"YOUR_SPARK_HOME/README.md\" // Should be some file on your system val spark = SparkSession.builder.appName(\"Simple Application\").getOrCreate() val logData = spark.read.textFile(logFile).cache() val numAs = logData.filter(line => line.contains(\"a\")).count() val numBs = logData.filter(line => line.contains(\"b\")).count() println(s\
Spark 快速入门
0 条评论
回复 删除
下一页