pyspark修炼手册(长期帖)

2023-11-16

  • 2020.03.31

  在进行pyspark开发时,需要先安装hadoop、spark的环境,或者只安装spark环境即可。配置集群or单机环境都可以,在配置好环境后,不需要单独启动hadoop/spark,直接运行pyspark程序即可。
  一个脚手架

'''
在win环境下,若出现了:
py4j.protocol.Py4JError: org.apache.spark.api.python.PythonUtils.getEncryptionEnabled does not exist in the JVM 
则需要用到findspark插件。
'''
import findspark
findspark.init()
from pyspark.sql import SparkSession
# SparkContext是spark功能的入口,SparkContext使用Py4J启动 JVM 并创建 JavaSparkContext
# 当我们运行任何Spark应用程序时,启动一个驱动程序,它具有main函数,并在此处启动SparkContext。然后,驱动程序在工作节点上的执行程序内运行操作。
from pyspark import SparkContext
# 默认情况下,PySpark将SparkContext作为 'sc'提供 ,因此创建新的SparkContext将不起作用
# sc.stop()当在程序中sc被多次创建的时候,程序会报错;可以使用sc.stop()来中断已经创建的sc
sc = SparkContext("xxx","xxx")
spark = SparkSession.builder.master('xxx').appName("xxx").getOrCreate()

PySpark SparkContext

class pyspark.SparkContext (
   master = None,	#它是连接到的集群的URL
   appName = None,	#您的工作名称
   sparkHome = None,	#Spark安装目录
   pyFiles = None,		#要发送到集群并添加到PYTHONPATH的.zip或.py文件
   environment = None,	#工作节点环境变量
   batchSize = 0,	#表示为单个Java对象的Python对象的数量。 设置1以禁用批处理,设置0以根据对象大小自动选择批处理大小,或设置为-1以使用无限批处理大小
   serializer = PickleSerializer(), #RDD序列化器
   conf = None,		# L {SparkConf}的一个对象,用于设置所有Spark属性
   gateway = None,	#使用现有网关和JVM,否则初始化新JVM
   jsc = None,		#JavaSparkContext实例
   # 用于进行性能分析的一类自定义Profiler(默认为pyspark.profiler.BasicProfiler)。在上述参数中,主要使用 master 和 appname 
   profiler_cls = <class 'pyspark.profiler.BasicProfiler'>
)

参考:

  • http://codingdict.com/article/8882

  在Spark2之后,DataFrame和DataSet进行了API融合,SparkContext也就融合进SparkSession中。因此在2.0版本之后,SparkSession就成为了Spark程序的主入口。
  关于SparkSession的使用可以参考以下博客:

  • https://blog.csdn.net/cjhnbls/article/details/79254188
  • https://www.cnblogs.com/piperck/p/10446720.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pyspark修炼手册(长期帖) 的相关文章

  • python:查找围绕某个 GPS 位置的圆的 GPS 坐标的优雅方法

    我有一组以十进制表示的 GPS 坐标 并且我正在寻找一种方法来查找每个位置周围半径可变的圆中的坐标 这是一个例子 http green and energy com downloads test circle html我需要什么 这是一个圆
  • 如何手动计算分类交叉熵?

    当我手动计算二元交叉熵时 我应用 sigmoid 来获取概率 然后使用交叉熵公式并平均结果 logits tf constant 1 1 0 1 2 labels tf constant 0 0 1 1 1 probs tf nn sigm
  • 使用 python requests 模块时出现 HTTP 503 错误

    我正在尝试发出 HTTP 请求 但当前可以从 Firefox 浏览器访问的网站响应 503 错误 代码本身非常简单 在网上搜索一番后我添加了user Agent请求参数 但也没有帮助 有人能解释一下如何消除这个 503 错误吗 顺便说一句
  • 使用特定的类/函数预加载 Jupyter Notebook

    我想预加载一个笔记本 其中包含我在另一个文件中定义的特定类 函数 更具体地说 我想用 python 来做到这一点 比如加载一个配置文件 包含所有相关的类 函数 目前 我正在使用 python 生成笔记本并在服务器上自动启动它们 因为不同的
  • 元组有什么用?

    我现在正在学习 Python 课程 我们刚刚介绍了元组作为数据类型之一 我阅读了它的维基百科页面 但是 我无法弄清楚这种数据类型在实践中会有什么用处 我可以提供一些需要一组不可变数字的示例吗 也许是在 Python 中 这与列表有何不同 每
  • Python 中的舍入浮点问题

    我遇到了 np round np around 的问题 它没有正确舍入 我无法包含代码 因为当我手动设置值 而不是使用我的数据 时 返回有效 但这是输出 In 177 a Out 177 0 0099999998 In 178 np rou
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • 使用 kivy textinput 的 'input_type' 属性的问题

    您好 我在使用 kivy 的文本输入小部件的 input type 属性时遇到问题 问题是我制作了两个自定义文本输入 其中一个称为 StrText 其中设置了 input type text 然后是第二个文本输入 名为 NumText 其
  • 使用 xlrd 打开 BytesIO (xlsx)

    我正在使用 Django 需要读取上传的 xlsx 文件的工作表和单元格 使用 xlrd 应该可以 但因为文件必须保留在内存中并且可能不会保存到我不知道如何继续的位置 本例中的起点是一个带有上传输入和提交按钮的网页 提交后 文件被捕获req
  • 从Python中的字典列表中查找特定值

    我的字典列表中有以下数据 data I versicolor 0 Sepal Length 7 9 I setosa 0 I virginica 1 I versicolor 0 I setosa 1 I virginica 0 Sepal
  • 在Python中检索PostgreSQL数据库的新记录

    在数据库表中 第二列和第三列有数字 将会不断添加新行 每次 每当数据库表中添加新行时 python 都需要不断检查它们 当 sql 表中收到的新行数低于 105 时 python 应打印一条通知消息 警告 数量已降至 105 以下 另一方面
  • Docker 中的 Python 日志记录

    我正在 Ubuntu Web 服务器上的 Docker 容器中测试运行 python 脚本 我正在尝试查找由 Python Logger 模块生成的日志文件 下面是我的Python脚本 import time import logging
  • pyspark 将 twitter json 流式传输到 DF

    我正在从事集成工作spark streaming with twitter using pythonAPI 我看到的大多数示例或代码片段和博客是他们从Twitter JSON文件进行最终处理 但根据我的用例 我需要所有字段twitter J
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • import matplotlib.pyplot 给出 AttributeError: 'NoneType' 对象没有属性 'is_interactive'

    我尝试在 Pycharm 控制台中导入 matplotlib pyplt import matplotlib pyplot as plt 然后作为回报我得到 Traceback most recent call last File D Pr
  • Python:XML 内所有标签名称中的字符串替换(将连字符替换为下划线)

    我有一个格式不太好的 XML 标签名称内有连字符 我想用下划线替换它 以便能够与 lxml objectify 一起使用 我想替换所有标签名称 包括嵌套的子标签 示例 XML
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只
  • 如何计算Python中字典中最常见的前10个值

    我对 python 和一般编程都很陌生 所以请友善 我正在尝试分析包含音乐信息的 csv 文件并返回最常听的前 n 个乐队 从下面的代码中 每听一首歌曲都是一个列表中的字典条目 格式如下 album Exile on Main Street
  • 更改 Tk 标签小部件中单个单词的颜色

    我想更改 Tkinter 标签小部件中单个单词的字体颜色 我知道可以使用文本小部件来实现与我想要完成的类似的事情 例如使单词 YELLOW 显示为黄色 self text tag config tag yel fg clr yellow s

随机推荐

  • 攻防世界Web题 - unseping 总结

    攻防世界Web题 unseping 总结 1 审题 进入题目 可以看出来是典型的php反序列化题目 2 源代码分析
  • 论文查找路径 查找IEEE、ScienceDirect论文 免费查看的方法

    IEEE ScienceDirect转免费查看网站网址 IEEE和ScienceDirect上的论文不少质量不错的 但是不少都是要收费才能下载查看的 怎么办呢 有国外大神提供的工具来帮忙 打开上面的网址 里面提供了三个网址 随便打开一个 仅
  • RabbitMQ--扩展--2.2--性能测试--linux.md

    RabbitMQ 扩展 2 2 性能测试 linux md 1 下载 https github com rabbitmq rabbitmq perf test releases tag v2 18 0 rabbitmq perf test
  • python发邮件--中文附件报错问题

    coding utf 8 Created on Thu Apr 11 14 01 30 2019 author zhang peng coding utf 8 import os import sys import smtplib from
  • 擎创技术流

    上期跟大家聊了下eBPF的发展历史还有特性 点击这里 擎创技术流 深入浅出运维可观测工具 一 聊聊eBPF的前世今生 一键回看上期精彩内容 这期主要跟大家分享下eBPF在应用过程中可能出现的问题 希望能帮到遇到类似问题的朋友 话不多说 我们
  • GIOU:Generalized Intersection over Union: A Metric and A Loss for Bounding Box Regression

    废话不多说 先看motivation There is a gap between optimizing the commonly used distance losses and maximizing this metric value
  • 高并发应用实践——缓存简介

    简介 随着互联网的普及 内容越来越复杂 用户和数据量越来越大 所以我们的应用应该支持更高的并发数 但是由于我们的服务器和数据库服务器资源量是有限的 所以如何更加高效的利用这有限的资源 并提供尽可能大的数据吞吐量 一个有效可行的办法就是引入缓
  • shell调用php脚本,并传递参数

    命令行执行带参数的php脚本 并取得参数 张映 发表于 2011 07 15 分类目录 php 一 为什么我们要在命令行下运行php脚本呢 个人理解 主要有二个原因 1 利用crontab去跑php 可以给服务器减压 当然在这里有一个条件
  • 如何导出mysql数据库

    mysql数据库是非常常用的一种数据库 属于中小型数据库 常用于网站业务和一些WEB系统业务 这个数据库非常简单 体积比较小 使用起来比较方便简洁 今天重点来介绍一下该数据的三种导出方法 1 使用工具软件导出数据库文件 这里推荐使用navi
  • ElementUI浅尝辄止30:PageHeader 页头

    如果页面的路径比较简单 推荐使用页头组件而非面包屑组件 1 如何使用
  • 信号处理之FFT(如何求幅度、相位、画频谱图)

    信号处理 可以理解为对信号进行某种加工或变换来达到削弱信号中的多余内容 滤除混杂的噪声和干扰 将信号变换成容易分析与识别的形式 便于估计和选择它的特征参量等目的 快速傅里叶变换 FFT 是信号处理的重要组成部分 是离散傅里叶变换 DFT 的
  • Python调用MMDetection实现AI抠图去背景

    这篇文章的内容是以 使用MMDetection进行目标检测 实例和全景分割 为基础 需要安装好 MMDetection 的运行环境 同时完成目标检测 实例分割和全景分割的功能实践 之后再看下面的内容 想要实现AI抠图去背景的需求 我们需要利
  • JavaWeb-13-Tomcat&Servlet学习笔记

    JavaWeb 13 Tomcat Servlet Web核心模块 1 web相关概念回顾 1 1软件架构 1 2资源分类 1 3网络通信三要素 2 web服务器软件 2 1常见的java相关的web服务器软件 2 2Tomcat web服
  • RDP远程桌面密码凭证获取

    前言 在渗透过程中获取到一台Windows服务器后 可以尝试获取当前机器保存的RDP远程桌面密码凭证 进而在内网横向渗透中进一步扩大战果 0x01 密码凭证获取 查看当前主机本地连接过的目标机器记录 reg query HKEY CURRE
  • 设置useSSL=true 的出现的问题

    一 环境 springboot mybaits plus mysql linux 服务器 服务器修改了SSL配置 对应的服务需要修改 二 问题1 Access without SSL denied Caused by java sql SQ
  • Base64图片编码的使用

    一 base64编码介绍 二 base64图片使用介绍 三 base64图片编码大小与原图文件大小之间的联系 四 代码实现 一 base64编码介绍 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一 Base64编码可用于
  • JUC学习系列六(计数器 CountDownLatch)

    一个同步辅助类 在完成一组正在其他线程中执行的操作之前 它允许一个或多个线程一直等待 用给定的计数 初始化 CountDownLatch 由于调用了 countDown 方法 所以在当前计数到达零之前 await 方法会一直受阻塞 之后 会
  • 以一己之力搭建分布式ChatGPT

    原以为去年年底ChatGPT已经火过一阵子了 慢慢热度会降下来 出乎意料的是 其热度有增无减 我也是从去年年底一直关注并使用 包括ChatGPT网页版 GPT3 API以及ChatGPT内测API 还包括其他国内外一些人工智能算法的体验 为
  • python回声程序_python 包详解

    包 包是一种管理 Python 模块命名空间的形式 采用 点模块名称 比如一个模块的名称是 A B 那么他表示一个包 A中的子模块 B 就好像使用模块的时候 你不用担心不同模块之间的全局变量相互影响一样 采用点模块名称这种形式也不用担心不同
  • pyspark修炼手册(长期帖)

    2020 03 31 在进行pyspark开发时 需要先安装hadoop spark的环境 或者只安装spark环境即可 配置集群or单机环境都可以 在配置好环境后 不需要单独启动hadoop spark 直接运行pyspark程序即可 一