购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 通过Shell使用Spark

Spark的Shell提供了一种学习API的简单方法,以及一种交互式分析数据的强大工具,它可以在Scala、R或Python中使用。本节主要介绍如何通过Shell的方式来使用Spark。

2.2.1 使用Scala的Shell

Scala的Shell是Spark安装包中自带的,因此可以通过在Spark中运行以下命令来直接启动Scala的Shell:

     spark-shell

Spark的核心抽象是Dataset分布式数据集合。Dataset可以从Hadoop支持的输入格式(如HDFS文件)创建,也可以通过转换现有的数据集来创建。例如,从Spark源目录的README.md文件的文本中创建一个新的Dataset:

     scala> val textFile = spark.read.textFile("README.md")  // 从文件创建一个Dataset
     textFile: org.apache.spark.sql.Dataset[String] = [value: string]

可以通过调用一些操作直接从Dataset中获取值,也可以转换Dataset以获取新值:

     scala> textFile.count()        // Dataset中的项目数
     res0: Long = 125               // 不同的Spark版本,README.md可能会变化,因此输出可能不同

     scala> textFile.first()        // Dataset中的第一个项目
     res1: String = # Apache Spark

现在将这个Dataset转换为一个新的Dataset。调用filter来返回一个新的Dataset,其中包含文件中项目的子集:

     // 包含Spark字样的行
     scala> val linesWithSpark = textFile.filter(line => line.contains("Spark"))
     linesWithSpark: org.apache.spark.sql.Dataset[String] = [value: string]

可以将转换(transformation)和行动(action)组合在一起使用:

     // 包含Spark字样的行数
     scala> textFile.filter(line => line.contains("Spark")).count()
     res3: Long = 20

2.2.2 使用其他语言的Shell

如果要使用Python的Shell,执行下面的命令:

     pyspark

如果要使用R的Shell,执行下面的命令:

     sparkR shell

各个语言的使用方式各不相同,请自行查阅相关文档,这里不再详细展开。如无特殊说明,本书后续使用Shell的示例,主要是指Scala的Shell。 LA8j0sWhJNFx+hySgAU/sc1/etCYXBosDGugx/SmONiKgYQGWMlTUNZmtGrg0VdP

点击中间区域
呼出菜单
上一章
目录
下一章
×