spark shell
启动spark-shell客户端
启动集群模式
本机为master节点
export MASTER=spark://`hostname`:7077
bin/spark-shell
或者
bin/spark-shell --master spark://ip:7077
如果没有spark实例启动,直接运行bin/spark-shell则启动的是本地模式,并且线程数为1,该启动方式和下面的效果一样
bin/spark-shell --master local
启动本地模式,线程数为n:
bin/spark-shell --master local[n]
./bin/spark-shell --help 查看更详细的参数信息
spark-shell 默认会创建一个SparkContext对象sc和一个SparkSession对象为spark,利用这些对象我们可以做一些命令行的操纵。
SparkSession可以用来创建SparkContext对象(spark.sparkContext),这个是新版的api。
常用的方法
RDD的方法分为transformations和actions,当对RDD进行transformation时,不会立刻执行,因为transformation是延迟执行的,
此时只会记录RDD的lineage,transformation返回的数据还是RDD。action会立刻执行,返回操作后的结果集
1、textFile: 加载文件,如果文件不是分布式文件,则每个work节点都需要有这个文件,不然运行的时候会提示文件找不到错误
sc.textFile("README.md")
2、addFile:添加文件到spark中
sc.addFile("../test")
可以通过 sc.textFile(SparkFiles.get("test"))进行文件的加载,注意引入import org.apache.spark.SparkFiles
3、count:RDD中有多少条数据
val input = sc.textFile("../README.md")
input.count
4、first:返回RDD中的第一条数据
input.first
5、map:对RDD中的每一条数据做map方法中传递的方法的操作
val spaceSplit = input.map(_.split(" "))
spaceSplit.first
6、flatMap:对RDD的数据进行映射后,合并成一个集合
val fmInput = input.flatMap(_.split(" "))
flatMap:

map:

7、take:取RDD中的前几条数据
val input = sc.textFile("../README.md")
取第一条数据:input.take(1)
取前三条数据:input.take(3)
8、collect:以集合的形式返回RDD中的数据
input.collect
9、reduceByKey:对相同key的值,做给定方法的操作,下面是一个spark实现的map reduce统计文件中的单词个数
input.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_+_).collect
spark shell的更多相关文章
- Spark shell的原理
Spark shell是一个特别适合快速开发Spark原型程序的工具,可以帮助我们熟悉Scala语言.即使你对Scala不熟悉,仍然可以使用这个工具.Spark shell使得用户可以和Spark集群 ...
- Spark:使用Spark Shell的两个示例
Spark:使用Spark Shell的两个示例 Python 行数统计 ** 注意: **使用的是Hadoop的HDFS作为持久层,需要先配置Hadoop 命令行代码 # pyspark >& ...
- Spark源码分析之Spark Shell(上)
终于开始看Spark源码了,先从最常用的spark-shell脚本开始吧.不要觉得一个启动脚本有什么东东,其实里面还是有很多知识点的.另外,从启动脚本入手,是寻找代码入口最简单的方法,很多开源框架,其 ...
- Spark源码分析之Spark Shell(下)
继上次的Spark-shell脚本源码分析,还剩下后面半段.由于上次涉及了不少shell的基本内容,因此就把trap和stty放在这篇来讲述. 上篇回顾:Spark源码分析之Spark Shell(上 ...
- [Spark内核] 第36课:TaskScheduler内幕天机解密:Spark shell案例运行日志详解、TaskScheduler和SchedulerBackend、FIFO与FAIR、Task运行时本地性算法详解等
本課主題 通过 Spark-shell 窥探程序运行时的状况 TaskScheduler 与 SchedulerBackend 之间的关系 FIFO 与 FAIR 两种调度模式彻底解密 Task 数据 ...
- 【原创 Hadoop&Spark 动手实践 5】Spark 基础入门,集群搭建以及Spark Shell
Spark 基础入门,集群搭建以及Spark Shell 主要借助Spark基础的PPT,再加上实际的动手操作来加强概念的理解和实践. Spark 安装部署 理论已经了解的差不多了,接下来是实际动手实 ...
- [Spark Core] Spark Shell 实现 Word Count
0. 说明 在 Spark Shell 实现 Word Count RDD (Resilient Distributed dataset), 弹性分布式数据集. 示意图 1. 实现 1.1 分步实现 ...
- Spark Shell简单使用
基础 Spark的shell作为一个强大的交互式数据分析工具,提供了一个简单的方式学习API.它可以使用Scala(在Java虚拟机上运行现有的Java库的一个很好方式)或Python.在Spark目 ...
- Spark Shell Examples
Spark Shell Example 1 - Process Data from List: scala> val pairs = sc.parallelize( List( ("T ...
- 02、体验Spark shell下RDD编程
02.体验Spark shell下RDD编程 1.Spark RDD介绍 RDD是Resilient Distributed Dataset,中文翻译是弹性分布式数据集.该类是Spark是核心类成员之 ...
随机推荐
- singleton pattern的推荐实现
一.单例模式的C#实现: (1)使用double-checked locking的方式: public sealed class Singleton { private static volatile ...
- 关于EF的一个简单Demo
今天使用EF的时候很奇怪的问题,添加属性后,使用程序包管理器控制台的NuGet命令更新无效,于是做了这个测试,一次性写好,自动更新,看看效果 1.首先建立一个MVC项目 2.我们选择Intern ...
- checkedListBox
checkedListBox一键删除多个选中items private void button3_Click(object sender, EventArgs e) { ; i < checke ...
- curl 小结
cURL可以使用URL的语法模拟浏览器来传输数据, 因为它是模拟浏览器,因此它同样支持多种协议,FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以 ...
- CodeForces 279D The Minimum Number of Variables 题解
题目大意: 有一组n个不相同的数字组成数串:a1,a2,a3-an. 1.一个数组b. 2.第一个操作我们将b0的值赋为a1.之后我们有n-1个操作,第k次操作我们将by=bi+bj(y,i,j可能相 ...
- 【DP】POJ 2385
题意:又是Bessie 这头牛在折腾,这回他喜欢吃苹果,于是在两棵苹果树下等着接苹果,但苹果不能落地后再接,吃的时间不算,假设他能拿得下所有苹果,但是这头牛太懒了[POJ另一道题目说它是头勤奋的奶牛, ...
- 初玩Linux部署项目
1,先安装虚拟机2,安装centOS3,安装mysql 安装mysql客户端: yum install mysql 安装mysql 服务器端: yum install mysql-server yum ...
- jquery实现限制textarea输入字数
ie中可用onpropertychange监听改变事件 火狐和谷歌可用oninput监听改变事件 综合: //使系统中class='text-length'的输入框只能输入200字符(主要用于text ...
- WPF整理-XAML构建后台类对象
1.XAML 接触WPF的第一眼就是XAML---XAML是用来描绘界面的.其实不然! "Actually, XAML has nothing to do with UI. It's mer ...
- #20145205 《Java程序设计》第4周学习总结
教材学习内容总结 1.面对对象中,因为我们需要设计多个模块,但是有不能像C语言中那样进行分块设计,所以我们用父类和子类进行模块的设计,我们在设计一个较大的程序时,在一个项目中建立不同的文件,用关键字e ...