2015-11-18 99 views
0

對Python很新穎。在pyspark上導入python庫

我想從S3讀取一些XML文件並查詢它們。我已連接到AWS並分配了一些EC2羣集,但我不確定如何導入我需要的庫來獲取數據。

我認爲使用xmlutils庫從XML到JSON的轉換,然後用在我做訪問就可以了(見下文)sqlcontext庫read.json

converter = xml2json("S3 logs", "output.sql", encoding="utf-8") 
converter.convert() 

from pyspark.sql import SQLContext 
sqlContext = SQLContext(sc) 

logs = sqlContext.read.json("output.sql") 
logs.registerAsTable("logs") 

query_results = sqlContext.sql("SELECT * from logs...") 

編輯

我想用這段代碼在cloudera鏈接上的Spark上在我的虛擬環境中安裝xmlutils。 (已設置SparkConf和SparkContext)

def import_my_special_package(x): 
    import my.special.package 
    return x 

int_rdd = sc.parallelize([1, 2, 3, 4]) 
int_rdd.map(lambda x: import_my_special_package(x)) 
int_rdd.collect() 

我試圖在函數的參數爲​​x同時傳遞xmlutils和「xmlutils」,但沒有奏效。難道我做錯了什麼?謝謝

+0

EC2實例上的基本操作系統是什麼? – StephenG

+0

我正在使用OS X – DolphinFriend

+0

無法在EC2上安裝OS X。 EC2實例上的操作系統是什麼,而不是您正在訪問的計算機上的操作系統?它是默認的AMI嗎? – StephenG

回答

0

pip和virtualenv默認安裝在2015.03 AMI的Python 2.7上 - https://aws.amazon.com/amazon-linux-ami/2015.03-release-notes/

上述網站顯示瞭如何訪問新的AMI圖像上的點。

+0

我同時安裝了python27-virtualenv.noarch和python27-pip.noarch,但是當我嘗試任何1.sudo pip-2.7 install modulename,2. sudo pip install modulename或3.virtualenv-2.7 myproject && cd myproject我只收到錯誤「command pip/virtualenv-2.7 not found」我正在運行運行python 2.7,Spark 1.51和Spark的2015.09 AMI運行python 2.7.10 – DolphinFriend