spark-shell(pyspark)单机模式使用和编写独立应用程序

这篇具有很好参考价值的文章主要介绍了spark-shell(pyspark)单机模式使用和编写独立应用程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

spark有四种部署方式:Local,Standalone,Spark on Mesos,Spark on yarn。第一个为单机模式,后三个为集群模式。

spark-shell支持python和scala,这里使用python。

1.启动pyspark环境

在spark安装目录下

./bin/pyspark

进入之后,如下图: 

pyspark的shell,spark,大数据2.编写程序

新建代码文件WordCount.py,并编写程序

touch WordCount.py
vim WordCount.py
from pyspark import SparkConf, SparkContext
# 使用本地模式启动
conf = SparkConf().setMaster("local").setAppName("My App")
# 生成一个SparkContext对象
sc = SparkContext(conf=conf)
# 设置文件路径
logFile = "file:///opt/servers/spark/README.md"
# 读取README.md文件生成的RDD
logData = sc.textFile(logFile, 2).cache()
# 分别统计RDD元素中包含字母a和b的行数
numAS = logData.filter(lambda line: 'a' in line).count()
numBs = logData.filter(lambda line: 'b' in line).count()
# 打印输出结果
print('Lines with a: %s, Lines with b: %s' % (numAS, numBs))

运行代码:python3 WordCount.py

如果报如下错误:

python3 WordCount.py
Traceback (most recent call last):
  File "WordCount.py", line 1, in <module>
    from pyspark import SparkConf, SparkContext
ModuleNotFoundError: No module named 'pyspark'
说明没有pyspark模块。

进入python安装目录下的lib/site-packages目录下,使用pip下载安装pyspark,这里使用国内清华大学镜像网站。

pip install pyspark -i http://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn

下载一个镜像,中间出了好几个问题,被我记录在

pip安装更新第三方库报错解决-CSDN博客

安装pyspark库成功后,重新运行代码,然后还是报错

Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
/usr/local/python3/lib/python3.7/site-packages/pyspark/context.py:317: FutureWarning: Python 3.7 support is deprecated in Spark 3.4.
  warnings.warn("Python 3.7 support is deprecated in Spark 3.4.", FutureWarning)
Traceback (most recent call last):
  File "WordCount.py", line 11, in <module>
    numAS = logData.filter(lambda line: 'a' in line).count()
  File "/usr/local/python3/lib/python3.7/site-packages/pyspark/rdd.py", line 2297, in count
    return self.mapPartitions(lambda i: [sum(1 for _ in i)]).sum()
  File "/usr/local/python3/lib/python3.7/site-packages/pyspark/rdd.py", line 2273, in sum
    0, operator.add
  File "/usr/local/python3/lib/python3.7/site-packages/pyspark/rdd.py", line 2025, in fold
    vals = self.mapPartitions(func).collect()
  File "/usr/local/python3/lib/python3.7/site-packages/pyspark/rdd.py", line 1814, in collect
    sock_info = self.ctx._jvm.PythonRDD.collectAndServe(self._jrdd.rdd())
  File "/usr/local/python3/lib/python3.7/site-packages/pyspark/rdd.py", line 5442, in _jrdd
    self.ctx, self.func, self._prev_jrdd_deserializer, self._jrdd_deserializer, profiler
  File "/usr/local/python3/lib/python3.7/site-packages/pyspark/rdd.py", line 5250, in _wrap_function
    sc._javaAccumulator,
TypeError: 'JavaPackage' object is not callable

是因为pyspark版本过高, 改成3.2.0版本的就可以了

pip3 install pyspark==3.2.0 -i http://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn
Looking in indexes: http://pypi.tuna.tsinghua.edu.cn/simple/

再次运行代码,运行结果如下:

pyspark的shell,spark,大数据

3.通过spark-submit运行程序

进入spark安装目录下的bin中

./spark-submit WordCound.py的绝对路径
省略了<master-url>参数,默认本地模式

运行结果如下 (部分截图):

pyspark的shell,spark,大数据 在这个过程中产生了许多其他信息干扰,可以通过修改log4j的日志信息显示级别,来消除干扰信息。

进入spark安装目录下的配置文件夹conf

cp log4j2.properties.template log4j2.properties

我的是spark-3.3.3版本,日志文件名字为log4j2.properties.template,每个版本的日志文件名字不太一样,具体的,要按照自己安装的版本的日志文件来,复制日志文件。

编辑日志文件

vim log4j2.properties

把显示控制台的信息改为error,保存并退出。

pyspark的shell,spark,大数据

再次使用spark-submit运行python文件,结果如下

pyspark的shell,spark,大数据

已经没有其他信息干扰了。 文章来源地址https://www.toymoban.com/news/detail-851305.html

到了这里,关于spark-shell(pyspark)单机模式使用和编写独立应用程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Python大数据之PySpark(三)使用Python语言开发Spark程序代码

    Python大数据之PySpark(三)使用Python语言开发Spark程序代码

    Spark Standalone的PySpark的搭建----bin/pyspark --master spark://node1:7077 Spark StandaloneHA的搭建—Master的单点故障(node1,node2),zk的leader选举机制,1-2min还原 【scala版本的交互式界面】bin/spark-shell --master xxx 【python版本交互式界面】bin/pyspark --master xxx 【提交任务】bin/spark-submit --master xxxx 【学

    2024年01月17日
    浏览(47)
  • 使用Pycharm运行spark实例时没有pyspark包(ModuleNotFoundError: No module named ‘py4j‘)

    使用Pycharm运行spark实例时没有pyspark包(ModuleNotFoundError: No module named ‘py4j‘)

    在安装并配置pyspark,下载并打开Pycharm(专业版)后进行spark实例操作(笔者以统计文件中的行数为例)时,运行程序后提示ModuleNotFoundError: No module named \\\'py4j\\\': 1.下载py4j包后下载pyspark包 打开新终端,在终端中输入(若在pycharm中进行下载可能导致下载失败,这里指定使用清华

    2024年04月26日
    浏览(12)
  • Spark与PySpark(1.概述、框架、模块)

    Spark与PySpark(1.概述、框架、模块)

    目录 1.Spark 概念 2. Hadoop和Spark的对比 3. Spark特点 3.1 运行速度快 3.2 简单易用 3.3 通用性强 3.4 可以允许运行在很多地方 4. Spark框架模块 4.1 Spark Core 4.2 SparkSQL 4.3 SparkStreaming 4.4 MLlib 4.5 GraphX 5. Spark的运行模式 5.1 本地模式(单机) Local运行模式 5.2 Standalone模式(集群) 5.3 Hado

    2024年02月02日
    浏览(31)
  • spark、pyspark 常用的模版 demo 网址

    spark、pyspark 常用的模版 demo 网址

    1、我自己有时候用百度或者其他的搜索出来的spark 常用案例,质量有的好有的差有时候就很烦。特地分享一个我常用的质量高的网站地址

    2024年02月11日
    浏览(11)
  • PySpark-Spark SQL基本介绍

    PySpark-Spark SQL基本介绍

    目录 Spark SQL基本介绍 Spark SQL特点 Spark SQL与Hive的异同 Spark SQL的数据结构 Spark SQL的入门 创建SparkSession对象 DataFrame详解 DataFrame基本介绍  DataFrame的构建方式 RDD构建DataFrame  内部初始化数据得到DataFrame schema总结 读取外部文件得到DataFrame Text方式读取 CSV方式读取 JSON方式读取 概

    2024年01月16日
    浏览(27)
  • 10-用PySpark建立第一个Spark RDD

    10-用PySpark建立第一个Spark RDD

    PySpark实战笔记系列第一篇 Apache Spark的核心组件的基础是RDD。所谓的RDD,即 弹性分布式数据集(Resiliennt Distributed Datasets) ,基于RDD可以实现Apache Spark各个组件在多个计算机组成的集群中进行无缝集成,从而能够在一个应用程序中完成海量数据处理。 只读不能修改 :只能通过

    2024年04月08日
    浏览(21)
  • 基于Headless构建高可用spark+pyspark集群

    Headless 服务类型并不分配容器云虚拟 IP,而是直接暴露所属 Pod 的 DNS 记录。没有默认负载均衡器,可直接访问 Pod IP 地址。因此,当我们需要与集群内真实的 Pod IP 地址进行直接交互时,Headless 服务就很有用。 其中Service的关键配置如下: clusterIP: None ,不让其获取clusterIP ,

    2024年02月06日
    浏览(10)
  • 使用策略模式实现 Spring 分布式和单机限流

    我们可以使用策略模式来统一单机限流和分布式限流的实现,提高代码的可扩展性和可维护性。 思路是定义一个 RateLimitStrategy 接口,并分别实现单机限流策略 LocalRateLimitStrategy 和分布式限流策略 DistributedRateLimitStrategy 。在 AOP 切面中,根据配置决定使用哪种限流策略。 定义策略

    2024年04月24日
    浏览(14)
  • spark之action算子学习笔记(scala,pyspark双语言)

    spark之action算子学习笔记(scala,pyspark双语言)

    函数签名:def collect(): Array[T] 功能说明:收集每个分区数据,以数组Array的形式封装后发给driver。设置driver内存:bin/spark-submit --driver-memory 10G(内存大小) 注意:collect会把所有分区的数据全部拉取到driver端,如果数据量过大,可能内存溢出。 图1 结果 图2 结果 返回RDD中元素的

    2024年02月04日
    浏览(18)
  • Linux系统下Spark的下载与安装(pyspark运行示例)

    Linux系统下Spark的下载与安装(pyspark运行示例)

    最近需要完成数据课程的作业,因此实践了一下如何安装并配置好spark 由于我想要将hadoop和spark一起使用,因此必须确定好spark的版本 Spark和Hadoop版本对应关系如下: Spark版本 Hadoop版本 2.4.x 2.7.x 3.0.x 3.2.x 可进入终端查看Hadoop版本 我这里的版本是2.7.1,因此选择下载2.4版本的

    2024年01月25日
    浏览(10)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包