Wenn ich laufen die folgenden:HiveContext liest nicht Schema einer Orcfile
val df1 = sqlContext.read.format("orc").load(myPath)
df1.columns.map(m => println(m))
Die Säulen werden als ‚_col0‘ gedruckt ‚_col1‘, ‚_col2‘ usw. In Bezug auf ihre wirklichen Namen gegen wie 'empno', 'name', 'deptno'.
Wenn ich 'mistable' in Hive beschreibe, druckt es den Spaltennamen korrekt, aber wenn ich 'orcfiledump' ausführe, zeigt es auch _col0, _col1, _col2. Muss ich "Schema beim Lesen" oder etwas spezifizieren? Wenn ja, wie mache ich das in Spark/Scala?
hive --orcfiledump /apps/hive/warehouse/mydb.db/mytable1
.....
fieldNames: "_col0"
fieldNames: "_col1"
fieldNames: "_col2"
Hinweis: habe ich die Tabelle wie folgt:
create table mydb.mytable1 (empno int, name VARCHAR(20), deptno int) stored as orc;
Hinweis: Dies ist kein Duplikat dieser Frage ist (Hadoop ORC file - How it works - How to fetch metadata), weil die Antwort mir sagt ‚Hive‘ zu verwenden & Ich bin schon HiveContext wie folgt verwendet:
val sqlContext = new org.apache.spark.sql.hive.HiveContext(sc)
By the way, ich bin meine eigene hive-site.xml verwenden, die folgendes enthält:
<configuration>
<property>
<name>hive.metastore.uris</name>
<value>thrift://sandbox.hortonworks.com:9083</value>
</property>
</configuration>
Mögliche Duplikate von [Hadoop ORC-Datei - Wie es funktioniert - Wie man Metadaten holt] (http://stackoverflow.com/questions/30094604/hadoop- orc-Datei-wie-es-funktioniert-wie-zu-holen-Metadaten) – zero323
Ich lese dies bereits, aber es sagt .. "Verwenden Sie Hive und/oder HCatalog zum Erstellen, Lesen ....". Aber ich benutze einen HiveContext zum Lesen. Wie hilft mir diese Antwort? Bitte erkläre. – DilTeam
Da das Schema in metasore gespeichert ist, bedeutet es wahrscheinlich, dass Sie nicht den gleichen Metastore für beide Operationen verwenden, richtig? – zero323