当前位置: 首页 > 知识库问答 >
问题:

如何将Python连接到Spark会话并保持RDD活动

井通
2023-03-14

如何让一个小Python脚本挂接到Spark的现有实例中,并在现有RDD上执行操作?

我正处于在视窗10上使用火花的早期阶段,在“本地”实例上尝试脚本。我正在使用Spark的最新稳定版本(Hadoop 2.7的Spark 2.0.1)。我已经安装并设置了Hadoop 2.7.3的环境变量。我正在用Python尝试Pyspark外壳和Visual Studio 2015社区。

我正在尝试构建一个大型引擎,在这个引擎上我将运行单个脚本来加载、处理、格式化和访问数据。我相信有一个正常的方法可以做到这一点;这不是火花的意义吗?

不管怎样,这是我到目前为止的经验。这通常是意料之中的。当我在Python中构建一个小的Spark脚本并使用Visual Studio运行它时,该脚本会运行、完成任务并退出。在退出的过程中,它也退出了它正在使用的火花上下文。

所以我有以下想法:如果我在Pyspark中启动一个持久的Spark上下文,然后在每个Python脚本中设置SparkConf和SparkContext以连接到该Spark上下文,会怎么样?因此,在网上查找Pyspark的默认设置时,我尝试了以下方法:

conf = SparkConf().setMaster("local[*]").setAppName("PySparkShell")
sc = SparkContext(conf = conf)

我开始玩Pyspark。在VisualStudio中的另一个脚本中,我将此代码用于SparkContext。我将一个文本文件加载到名为RDDFromFilename的RDD中。但一旦脚本运行,我就无法访问Pyspark shell中的RDD。

如何启动持久性Spark上下文,在一个Python脚本中创建RDD,并从后续Python脚本访问该RDD?尤其是在Windows中?

共有2个答案

逄岳
2023-03-14

对于那些可能的追随者:我最近发现了SnappyData。

SnappyData还相当年轻,有一点学习曲线,但它promise要做的是创建一个持久的可变SQL集合,该集合可以在多个Spark作业之间共享,并且可以作为RDD和DataFrames进行本机访问。它有一个作业服务器,您可以将并发作业转储到该服务器上。

它本质上是GemFire内存数据库与Spark集群的组合,Spark集群在同一JVM中是本地的,因此(当我能够很好地管理它时),我可以在没有单机瓶颈的情况下执行大型任务,将数据导入和导出Spark,或者我甚至可以在另一个Spark程序运行相同数据时执行实时数据操作。

我知道这是我自己的答案,但我可能不会把它标记为答案,直到我变得足够老练,对它解决我的问题有多好有意见。

姬实
2023-03-14

Spark中没有解决方案。你可以考虑:

>

  • 要保持持久RDD:

    • 阿帕奇点火

    要保持持久共享上下文,请执行以下操作:

    • spark作业服务器
    • 利维-https://github.com/cloudera/livy
    • 薄雾-https://github.com/Hydrospheredata/mist

    要与笔记本共享的上下文,请执行以下操作:

    • 阿帕奇齐柏林飞艇

    我认为在这些产品中,只有齐柏林飞艇正式支持Windows。

  •  类似资料:
    • 问题内容: 我正在使用POST方法。我需要创建一次,并且应该使用Keep Alive Connection。但是我认为,它每次都会建立一个新的连接。 因此,我需要使用 保持活动 连接。 这是我的代码段,很多帮助将不胜感激。 而且logcat日志是: 问题答案: 10:07:29.746:D / org.apache.http.headers(1529):>>连接:保持活动 您正在要求保持活动状态。

    • 我有一个Android应用程序,即时通讯是其中一个关键功能。为了实现IM特性,我们使用基于的推送服务器。 编辑:我曾建议使用前台服务,但下午不喜欢通知托盘总是显示在状态栏,他希望保持干净。 任何建议都将不胜感激!

    • 问题内容: 我用来登录远程服务器。 问题 : 当我在工作场所时,它始终保持连接并且可以正常工作。不幸的是,在我在家中与远程服务器连接后,终端会在10到15分钟内死机。 控制台上没有错误/超时报告,但是光标不能再移动了。 输入检查登录用户时,那里有一些僵尸登录用户,我必须手动将其杀死。 这很烦人。谁能帮我? 问题答案: 在客户端运行的ssh守护程序(sshd),如果客户端变为静默(即,不发送信息),

    • 我们正在使用PingFederate实现一个web SSO解决方案,第三方产品包括SAML2开箱即用。 但是,如果用户仍在积极使用SP,我们正在尝试解决如何停止IDP会话超时的问题。 第三方产品支持请求IDP端的空资源,目的是该URL将导致IDP会话被延长。 我在PingFederate中看不到任何支持这种东西的东西。有人知道这通常是如何解决的吗?有没有一种方法可以扩展PingFederate会话

    • 问题内容: 错误代码:2013。查询期间丢失与MySQL服务器的连接 我正在使用MySQL Workbench。另外,我正在运行一批插入件,总共约1000行(例如,相乘1000次),每批插入都花费相当多的时间,其中一些超过600秒。 如何配置工作台,使其在一夜之间继续工作,而又不停止且不丢失连接? 问题答案: 从现在不可用的互联网档案中: 转到“编辑”->“首选项”->“ SQL编辑器”,然后将此

    • 问题内容: 我正在尝试将Spark RDD转换为DataFrame。我已经看到了将方案传递给函数的文档和示例 。 但是我有38列或字段,并且这将进一步增加。如果我手动给出指定每个字段信息的架构,那将是一件非常繁琐的工作。 还有其他方法可以指定模式,而无需事先了解各列的信息。 问题答案: 看到, 在Spark中有两种将RDD转换为DF的方法。 和 我将向您展示如何动态地做到这一点。 toDF() 该