Spark学习笔记No.04(本机PySpark)

pip install pyspark pyhive pymysql jieba --user -i https://pypi.tuna.tsinghua.edu.cn/simple

1、SparkContext

创建SparkConf对象
基于SparkConf对象,创建SparkContext对象

# coding:utf8
from pyspark import SparkConf, SparkContext
import os
os.environ['PYSPARK_PYTHON']="D:\\Anaconda\\python.exe"(如果在本地,加上这一行)
# 创建 SparkConf 对象
conf = SparkConf().setMaster("local[*]").setAppName("WordCountHelloWorld")

# 创建 SparkContext 对象
sc = SparkContext(conf=conf)

# 读取文件
lines = sc.textFile("../data/input/words.txt")

# 切分单词并统计
words_rdd=lines.flatMap(lambda line:line.split(" "))

#将单词转换为元组对象,key是单词,value是1
words_with_one_rdd=words_rdd.map(lambda x:(x,1))

#将元组的value按照key来分类,对所有value执行聚合操作
result_rdd=words_with_one_rdd.reduceByKey(lambda a,b:a+b)

#通过collect方法收集RDD的数据打印输出结果
print(result_rdd.collect())
# # 输出结果
# for (word, count) in wordCounts.collect():
#     print(f"{word}: {count}")
#
# # 停止 SparkContext 对象
# sc.stop()
分布式代码执行分析

SparkContext对象的构建以及Spark程序的退出,由Driver负责执行(非数据处理的部分由Driver工作)
具体的数据处理步骤RDD,由Executor执行(数据处理的部分由Executor工作)
PySpark宗旨是在不破坏Spark已有的运行时架构,在Spark架构外层包装一层Python API,借助Py4j实现Python和Java的交互,进而实现通过Python编写Spark应用程序,其运行时架构如下图所示。
在这里插入图片描述
Driver由JVM执行 Executor由JVM命令转发。到底层的python解释器进行工作

2、提交到服务器运行

在代码中尽量不要设置master。如果设置以代码为准,spark-submit工具的设置就无效了
Spark本地模式

(base) [smith@hadoop102 ~]$ /opt/module/spark/bin/spark-submit --master local[*] /home/smith/helloworld.py 

Spark yarn模式

(base) [smith@hadoop102 ~]$ /opt/module/spark/bin/spark-submit --master yarn /home/smith/helloworld.py 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值