2016-08-02 86 views
0

我正嘗試使用Jupiter Notebook從AWS EC2集羣上的HDFS讀取數據。它有7個節點。我正在使用HDP 2.4,我的代碼如下。該表有數百萬行,但代碼不會返回任何行。「ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com」是服務器(ambari-server)。從集羣上的HDFS讀取數據

from pyspark.sql import SQLContext 
sqlContext = HiveContext(sc) 
demography = sqlContext.read.load("hdfs://ec2-xx-xx-xxx-xx.compute-1.amazonaws.com:8020/tmp/FAERS/demography_2012q4_2016q1_duplicates_removed.csv", format="com.databricks.spark.csv", header="true", inferSchema="true") 
demography.printSchema() 
demography.cache() 
print demography.count() 

但使用sc.textFile,我得到行

data = sc.textFile("hdfs://ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com:8020/tmp/FAERS/demography_2012q4_2016q1_duplicates_removed.csv") 
schema= data.map(lambda x: x.split(",")).first() #get schema 
header = data.first()       # extract header 
data=data.filter(lambda x:x !=header)   # filter out header 

data= data.map(lambda x: x.split(",")) 
data.count() 
3641865 
+0

我不確定這個問題需要jupyter標籤。您可以在Spark殼中運行相同的代碼。 –

+0

哦,和PS,你應該1)不給實際地址的集羣和2)你**真的**應改變默認登錄;) –

+0

謝謝。事實上,當我複製代碼形式木星時,就發生了這種情況。 –

回答

0

由Indrajit給出here答案解決我的問題的正確數目。問題出在spark-csv jar上。