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

如何获取一个小的Python脚本以连接到现有的Spark实例,并对现有的RDD执行操作?

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

我正在尝试构建一个大型引擎,在该引擎上,我将运行单个脚本以加载,按摩,格式化和访问数据.我敢肯定有一种正常的方法可以做到这一点.这不是Spark的重点吗?

无论如何,这是我到目前为止的经验.这通常是可以预期的.当我在Python中构建一个小的Spark脚本并使用Visual Studio运行它时,该脚本将运行,执行其工作并退出.在退出过程中,它还会退出所使用的Spark上下文.

所以我有以下想法:如果我在Pyspark中启动一个持久性Spark Context,然后在每个Python脚本中设置我的SparkConf和SparkContext来连接到该Spark Context,该怎么办?因此,在网上查找Pyspark的默认值是什么,我尝试了以下操作:

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

我开始了Pyspark.在Visual Studio中的单独脚本中,我将此代码用于SparkContext.我将一个文本文件加载到名为RDDFromFilename的RDD中.但是一旦脚本运行,我将无法在Pyspark shell中访问该RDD.

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

解决方法:

Spark中没有解决方案.您可以考虑:

>要保持持久的RDD:

> Apache Ignite

>要保持持久的共享上下文:

>火花作业服务器
> livy-https://github.com/cloudera/livy
>雾-https://github.com/Hydrospheredata/mist

>要与笔记本共享上下文:

> Apache Zeppelin

我认为只有Zeppelin正式支持Windows.

上一篇:python-如何在不使用RDD API的情况下摆脱pyspark数据帧中的行包装器对象?


下一篇:python-将PySpark数据框列类型转换为字符串并替换方括号