如何调度spark程序_Spark 基础 : 如何编写Spark交互程序

f0f9aecbfd223b44d2887525ad220a47.png

使用 Python 编写 Spark 交互程序:

1. 启动 Spark Shell

在spark-shell中,已经创建了一个名为 sc 的 SparkContext 对象

./bin/spark-shell --master local[4] --jars testcode.py

--master 用来设置 context 将要连接并使用的资源主节点

使用 --jars 可以添加 Jar 包的路径

spark-shell 的本质是在后台调用了spark-submit 脚本来启动应用程序。

2. 加载 text 文件

加载本地文件创建RDD。

我们以加载 Spark 自带的本地文件 README.md 文件进行测试,返回一个 MapPartitionsRDD文件。

val textFile= sc.textFile("file:///$SPARK_HOME/README.md")

3. 简单 RDD 操作

对于 RDD,可以执行 Transformation 返回新 RDD,也可以执行 Action 得到返回结果。

textFile.first()
textFile.count()

通过 Transformation 操作,使用 filter 命令返回一个新的 RDD ,即抽取文件全部条目的一个子集,返回一个新的 FilteredRDD 。

valtext Filter = textFile.filter(line >line.contains("Spark"))
textFile.filter(line =>line.contains("Spark")).count()

4. 简单 RDD 操作应用

通过简单 RDD 操作进行组合,来实现找出文本中每行最多单词数,词频统计等。

找出文本中每行最多单词数

textFile.map(line =>line.split(" ").size).reduce((a, b) => if (a > b) a else b)

词频统计

从 MapReduce 开始,词频统计已经成为大数据处理最流行的入门程序.

val wordCount= textFile.flatMap(line =>line.split(" ")).map(word => (word,1)). 
wordCount.collect()

如果想让函数文本更简洁,可以使用占位符“_”,占位符可以看作表达式里需要被“填入”的“空白”。

Spark默认是不进行排序的。

5. RDD缓存

Spark也支持将数据集存进一个集群的内存缓存中。

textFilter.cache()
textFilter.count()

通过cache缓存数据可以用于非常大的数据集,支持跨越几十或几百个节点。

构建Spark的开发环境

构建Spark开发环境的思路,基于Eclipse或Idea,通过Java、Scala或Python语言进行开发。

1. 准备环境

1.安装JDK

2.安装Python

3.构建Spark的IntelliJ IDEA开发环境

2. 独立应用程序编程

1 创建SparkContext对象

2 编写简单应用程序

3 编译并提交应用程序

对于Python应用,在<application-jar>的位置传入一个.py文件代替一个Jar包,并且以-py-files的方式在搜索路径下加入Python.zip、.egg或.py文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值