ich Gobblin bin mit periodisch relationalen Daten aus Oracle
, wandeln es in avro
und veröffentlichen es auf HDFS
Funken - Avro Liest Schema aber Datenrahmen Leere
Meine dfs Verzeichnisstruktur sieht wie folgt aus
-tables
|
-t1
|
-2016080712345
|
-f1.avro
|
-2016070714345
|
-f2.avro
zu extrahieren ich versuche, von ihm zu lesen, etwa so:
val sq = sqlContext.read.format("com.databricks.spark.avro")
.load("/user/username/gobblin/job-output/tables/t1/")
Als ich printSchema
ich betreibe kann sehen, dass das Schema korrekt interpretiert wird. Wenn ich count
oder show
ausführen, sind DataFrames
leer. Ich habe festgestellt, dass die .avro
Dateien nicht leer sind, indem es JSON
java -jar avro-tools-1.7.7.jar tojson --pretty t1/20160706230001_append/part.f1.avro > t1.json
ich Umwandlung vermuten, dass es etwas zu tun mit der Verzeichnisstruktur haben kann. Vielleicht sehen die Spark-Avro-Bibliotheken nur eine Ebene unterhalb des Stammverzeichnisses für .avro
-Dateien aus. Die Protokolle scheinen darauf hinzudeuten, dass nur die Verzeichnisse unter t1 auf dem Treiber aufgelistet wurden:
16/07/07 10:47:09 INFO avro.AvroRelation: Eintrag hdfs: //myhost.mydomain.com: 8020/user/username/gobblin/job-output/tables/t1 auf Treiber
16/07/07 10:47:09 INFO avro.AvroRelation: Auflistung hdfs: //myhost.mydomain.com: 8020/user/username/gobblin/job-output/tables/t1/20160706230001_append auf driver
Hat jemand etwas Ähnliches erfahren, oder wissen, wie man das umgehen kann? Ich müsste tiefer als das t1
Verzeichnis zeigen müssen, da die Namen von einem Zeitstempel generiert werden.