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
Ich bin nicht sicher, dass diese Frage das Jupyter-Tag benötigt. Sie können denselben Code in der Spark-Shell ausführen. –
Oh, und PS, sollten Sie 1) nicht die tatsächliche Adresse des Clusters und 2) Sie ** wirklich ** sollte die Standardanmeldung ändern;) –
Danke. Eigentlich passierte das, als ich den Code Jupiter kopierte. –