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!





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

spark shell的学习

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

SparkShell实战

1、Spark编程模型 1.1 术语定义 l应用程序(Application): 基于Spark的用户程序,包含了一个Driver Program 和集群中多个的Executor; l驱动程序(...
  • oanqoanq
  • oanqoanq
  • 2016年03月27日 20:34
  • 3834

scala 替换段落中的多个空格、换行、制表符

scala 替换段落中的多个空格、换行、制表符
  • mulangren1988
  • mulangren1988
  • 2017年02月10日 11:23
  • 6195

[spark学习]之spark shell 入门

spark shell 是spark自带的一个快速原型开发的工具,在spark目录下面的bin目录下面,鸡...
  • sunflower_cao
  • sunflower_cao
  • 2014年05月23日 17:55
  • 20350

scala(spark-shell)里多行输入

经常将程序片段直接黏贴到spark-shell里,会遇到多行输入的异常,可按以下方法解决 1.scla里直接输入:paste,黏贴后直接回车,然后按ctrl+D 2.scala里通过:load ...
  • zhouyan8603
  • zhouyan8603
  • 2017年08月29日 17:54
  • 877

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

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

spark-shell 基本用法

spark-shell 是 scala 语言的 REPL(Read-Eval-Print-Loop,通俗地理解就是命令行模式) 环境,同时针对 spark 做了一些拓展。1. 启动 spark-she...
  • lanchunhui
  • lanchunhui
  • 2016年06月05日 16:35
  • 2573

Java出现"此时不应有......."的错误

今晚在安装weblogic的时候,双击运行startWebLogic.cmd,dos窗口一闪而过,随后将 startWebLogic.cmd 拖进cmd窗口运行,显示“此时不应有.... tools....
  • perfect2011
  • perfect2011
  • 2013年08月26日 09:53
  • 5431

【spark】spark常用命令列表

:启动spark-shell时,指定需要加载的类库 bin\spark-shell  --jars   E:\DM\code\projects\ch11-testit\target\ch11-test...
  • baibaiw5
  • baibaiw5
  • 2016年02月17日 19:35
  • 2703

spark编程指南

spark编程指南 概述 每一个spark应用程序包含一个驱动程序,驱动程序用来运行用户的main函数并在集群上执行若干并行操作spark最主要的抽象叫做离散分布式数据集RDD。它是跨集群节点分区的...
  • u011489205
  • u011489205
  • 2016年03月16日 15:25
  • 2288
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spark学习(一)---Spark-shell使用
举报原因:
原因补充:

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