2016-01-06 52 views
0

我已經設置了一個測試Cassandra + Spark集羣。我能夠從火花成功查詢卡珊德拉,如果我做到以下幾點:如何從python應用程序查詢spark sql?

import org.apache.spark.sql.cassandra.CassandraSQLContext 
import import sqlContext.implicits._ 
val cc = new CassandraSQLContext(sc) 
val dataframe = cc.sql("select * from my_cassandra_table") 
dataframe.first 

現在我想從一個Python應用程序,我們查詢數據。網絡上的所有文檔似乎都顯示瞭如何使用spark的python shell(隱式提供上下文'sc')。

我需要能夠從一個獨立的python腳本運行spark SQL,這可能是一個服務於網頁的腳本。

我還沒有找到任何文檔,沒有關於apache-spark irc頻道的幫助。我只是在想這個錯嗎?有沒有其他工具可以向技術用戶較少的用戶提供Spark SQL?我完全是新的火花。

+1

[Quick Start documentation](https://spark.apache.org/docs/latest/quick-start.html#self-contained-applications)如何? :) – zero323

+0

@ zero323快速啓動文檔顯示如何編寫一個python腳本,然後'提交'到pyspark。我想要的東西類似於某些人可能使用pgsql或mysql驅動程序來運行普通的python web應用程序的方式。 Python腳本以'main'方法開始,導入所有的庫,每隔一段時間執行spark-sql查詢 – Shahbaz

+0

'spark-submit'只是一個方便的包裝。只要所有的設置都是正確的,它並不是真正需要的。您在文檔中看到的是有效的獨立應用程序。 – zero323

回答

2

Spark Programming Guide

的第一件事,一個星火計劃必須做的是創造一個SparkContext對象,它告訴星火如何訪問羣集。要創建SparkContext,首先需要構建包含有關應用程序信息的SparkConf對象。

conf = SparkConf().setAppName(appName).setMaster(master) 
sc = SparkContext(conf=conf) 

appName參數是您的應用程序顯示在集羣UI上的名稱。 master是Spark,Mesos或YARN羣集URL,或者是以本地模式運行的特殊「本地」字符串。實際上,在羣集上運行時,您不會希望在程序中對主機進行硬編碼,而是使用spark-submit啓動應用程序並在其中接收它。但是,對於本地測試和單元測試,您可以通過「本地」來運行Spark進程。


然後,您可以用​​測試您的程序。

相關問題