Spark学习(一)---Spark-shell使用

原创 2015年11月18日 21:06:55

<span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px; background-color: rgb(255, 255, 255);">Spark-shell使用</span>

配置好Spark集群,测试Sparkwordcount程序,可以通过基本的Spark-shell来进行交互式的代码提交,比如:

<span style="font-size:18px;">val textFile = sc.textFile("words/test.txt")</span>


<span style="font-size:18px;">val result = textFile.flatMap(line => line.split("\\s+")).map(word => (word,1)).reduceByKey(_+_)</span>
<span style="font-size:18px;">#上面的为基本先把文件的每行进行分割,再把字符串进行计数,接着进行累加</span>
<span style="color:#ff0000;"><span style="font-size:18px;">自己在测试的时候在第一步传一个不存在的文件,则当时第一步不提示出错,等到第二步,执行reduceByKey(_+_)来进行统计的时候会报错,这就应了RDD在transformation的时候不做任何操作,只是基本的做个转换,这就体现了RDD的“惰性”。</span></span>
<pre name="code" class="python"><span style="font-size:18px;">result.saveAsTextFile("words/result1")
</span>
#第三步是将文件保存在hdfs集群的相应位置下。

<span style="font-size:18px;">好了,第一步结束了,也许你想自己编写一个比较长的scala程序来一次性执行,ok,也可以满足你!来看:</span>
<span style="font-size:18px;">创建myFile.scala 代码如下:</span>
<h3><pre name="code" class="java"><pre name="code" class="python">import org.apache.spark._
import SparkContext._

val sc = new SparkContext()
val textFile = sc.textFile("words/test.txt")
val result = textFile.flatMap(line => line.split("\\s+")).map(word => (word,1)).reduceByKey(_+_)
result.saveAsTextFile("words/gaga")
stty echo
#最后一句是设置终端的,如果不加执行玩程序你将会发现,终端命令显示不出来而且不换行


<span style="font-size:18px;color:#000099;">然后执行./spark-shell < myFile.scala</span>
<span style="font-size:18px;color:#000099;">就ok了,网上还有说写个脚本如下:</span>
<span style="font-size:18px;color:#000099;"><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: rgb(245, 245, 245);">#!/usr/lib/spark/bin/spark-shell</span><br style="box-sizing: content-box; font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: rgb(245, 245, 245);" /><span style="font-family: Helvetica, Tahoma, Arial, sans-serif; line-height: 24px; background-color: rgb(245, 245, 245);">scala 代码</span></span>

可以在下图看到执行两次保存的文件,Make it!





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

在scala和spark-shell里粘贴代码块

先输入:paste,然后粘贴代码块,之后按ctrl+D结束输入。注意必须输入大小的D,如果当前不是大写模式,则需要多按一个shift键,把d转成大写。 示例如下: scala> :paste ...

spark mapPartition方法与map方法的区别 以及 join的用法

转载:http://wanshi.iteye.com/blog/2183906  rdd的mapPartitions是map的一个变种,它们都可进行分区的并行处理。     两者的主要区别...

Spark Shell简单使用

基础 Spark的shell作为一个强大的交互式数据分析工具,提供了一个简单的方式学习API。它可以使用Scala(在Java虚拟机上运行现有的Java库的一个很好方式)或Python。在Spark目...

Spark 中map与 flatMap的区别

通过一个实验来看Spark 中 map 与 flatMap 的区别。 步骤一:将测试数据放到hdfs上面 hadoopdfs -put data1/test1.txt /tmp/test1.txt...

spark shell的学习

1. 进入SPARK_HOME/bin下运行命令:
  • yeruby
  • yeruby
  • 2014年11月12日 15:13
  • 25120

[spark学习]之spark shell 入门

spark shell 是spark自带的一个快速原型开发的工具,在spark目录下面的bin目录下面,鸡...

SecureCRT终端上使用spark-shell时按退格键无反应的解决方法

最近开始学习使用spark,安装部署好集群后,用SecureCRT远程连接至Spark集群,启动spark-shell却发现输错命令后却无法用退格键删除。虽然只是个小问题却挺恼人的。经过多方查找,终于...

spark-shell无法退格/删除

配好了Spark集群后,先用pyspark写了两个小例子,但是发现Tab键没有提示,于是打算转到scala上试试,在spark-shell下有提示了,但是发现不能退格,而且提示也不是复写,而是追加,这...

spark-shell on yarn 出错(arn application already ended,might be killed or not able to launch applic)解决

今天想要将spark-shell 在yarn-client的状态下 结果出错: [hadoop@localhost spark-1.0.1-bin-hadoop2]$ bin/spark-shell...

TaskScheduler解密:Spark shell案例,TaskScheduler和SchedulerBackend、FIFO与FAIR模式调度解密、Task数据本地性资源分配

TaskSchedulerBackend与SchedulerBackendFIFO与FAIR两种调度模式Task数据本地性资源的分配一、TaskScheduler运行过程(Spark-shell角度)...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spark学习(一)---Spark-shell使用
举报原因:
原因补充:

(最多只允许输入30个字)