簡體   English   中英

如何將Python連接到Spark會話並保持RDD活着

[英]How to Connect Python to Spark Session and Keep RDDs Alive

如何將一個小的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上下文,然后在每個Python腳本中設置我的SparkConf和SparkContext以連接到Spark上下文怎么辦? 因此,在線查看Pyspark的默認設置,我嘗試了以下內容:

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

我開始了Pyspark。 在Visual Studio的單獨腳本中,我將此代碼用於SparkContext。 我將一個文本文件加載到名為RDDFromFilename的RDD中。 但是一旦腳本運行,我無法在Pyspark shell中訪問該RDD。

如何啟動持久性Spark Context,在一個Python腳本中創建RDD,並從后續Python腳本訪問該RDD? 特別是在Windows?

Spark中沒有解決方案。 你可以考慮:

我認為只有這些只有Zeppelin正式支持Windows。

對於那些可能關注的人:我最近發現了SnappyData。

SnappyData仍然相當年輕,並且有一點學習曲線,但它承諾做的是創建一個可以在多個Spark作業之間共享的持久可變SQL集合,並且可以作為RDD和DataFrame本地訪問。 它有一個作業服務器,您可以將並發作業轉儲到。

它本質上是GemFire內存數據庫與同一JVM中本地的Spark集群的組合,所以(當我管理它的時候很不錯)我可以完成沒有單機瓶頸的大型任務來管理數據進出Spark ,或者我甚至可以進行實時數據操作,而另一個Spark程序在相同的數據上運行。

我知道這是我自己的答案,但我可能不會將其標記為答案 ,直到我足夠成熟,對如何很好地解決了我的問題的意見。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM