Spark学习--spark-shell使用

原创 2015年11月18日 21:13:27

<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!





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

Carbondata源码阅读(1) - Carbondata Presto Connector

Carbondata Presto Connector 好久没有写博客了。 最近开始读Apache Carbondata的源码,从presto connector开始读。因为一方面对scala和S...
  • bhq2010
  • bhq2010
  • 2017年06月10日 22:15
  • 807

CarbonData源码阅读(3) - core代码结构概览

读过Carbondata Presto Connector和Hadoop module之后,其实对CarbonData core已经大概了解了一下,这里梳理一下。CarbonData因为特性比ORC多...
  • bhq2010
  • bhq2010
  • 2017年07月27日 15:10
  • 254

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

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

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

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

Spark修炼之道(基础篇)——Linux大数据开发基础:第十三节:Shell编程入门(五)

本节主要内容 while循环控制结构 if条件判断 until循环控制结构1. while循环控制结构本节例子来源:http://blog.chinaunix.net/uid-25880122-id-...

oozie部署spark、hadoop、hive、shell和java程序举例

oozie部署spark、hadoop、hive、shell和java程序举例

解决通过spark-shell 连接集群产生的不能连接master问题

spark集群启动后通过MASTER=spark://spark01:7077 ./spark-shell 连接 报以下错误
  • lwnowhy
  • lwnowhy
  • 2014年05月07日 16:26
  • 3707

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

TaskSchedulerBackend与SchedulerBackendFIFO与FAIR两种调度模式Task数据本地性资源的分配一、TaskScheduler运行过程(Spark-shell角度)...

Spark修炼之道(基础篇)——Linux大数据开发基础:第十四节:Shell编程入门(六)

本文主要内容 case控制结构read命令管道 1. case控制结构 参考:http://blog.csdn.net/dreamtdp/article/details/8048720 ...

spark-shell 高级操作

一、系统环境 Welcome to ____ __ / __/__ ___ _____/ /__ _\ \/ _ \/ _ `/ __/ '...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spark学习--spark-shell使用
举报原因:
原因补充:

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