2016-08-02 25 views
0

Ich versuche, Daten von HDFS auf AWS EC2-Cluster mit Jupiter Notebook zu lesen. Es hat 7 Knoten. Ich benutze HDP 2.4 und mein Code ist unten. Die Tabelle hat Millionen von Zeilen, aber der Code gibt keine Zeilen zurück. "Ec2-xx-xxx-xxx-xx.compute-1.amazonaws.com" ist der Server (ambari-server).Lesen von Daten aus HDFS auf einem Cluster

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() 

Aber mit sc.textFile, erhalte ich die richtige Anzahl der Zeilen

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

Ich bin nicht sicher, dass diese Frage das Jupyter-Tag benötigt. Sie können denselben Code in der Spark-Shell ausführen. –

+0

Oh, und PS, sollten Sie 1) nicht die tatsächliche Adresse des Clusters und 2) Sie ** wirklich ** sollte die Standardanmeldung ändern;) –

+0

Danke. Eigentlich passierte das, als ich den Code Jupiter kopierte. –

Antwort

0

Die Antwort von Indrajit gegeben here mein Problem gelöst. Das Problem war mit dem Spark-CSV-Glas.