SparkSQL, Thrift Server und Tableau

8

Ich frage mich, ob es einen Weg gibt, der die Tabelle sparkSQL in sqlContext direkt für andere Prozesse sichtbar macht, zum Beispiel für Tableau.

Ich habe etwas über Spar-Server recherchiert, aber ich habe keine spezifische Erklärung dazu gefunden. Ist es eine Middleware zwischen Hive (Datenbank) und Anwendung (Client)? Wenn ja, muss ich in meinem Programm Spark in eine Hive-Tabelle schreiben?

Wenn ich Beeline verwende, um die Tabellen vom Sparserver zu überprüfen, gibt es ein Feld isTempTable . Könnte ich wissen, was es bedeutet? Ich vermute, es ist eine temporäre Tabelle in der sqlContext des Sparsamkeits-Servers, weil ich etwas darüber gelesen habe, ist ein Funken-Treiber-Programm und alle zwischengespeicherten Tabellen sind durch mehrere Programme sichtbar . Meine Verwirrung hier ist, wenn es ein Treiberprogramm ist, wo sind die Arbeiter?

Zusammenfassend

  1. Wo soll ich meinen DataFrame oder Tabellen in sqlContext schreiben? Welche Methode sollte ich verwenden (wie dataFrame.write.mode(SaveMode.Append).saveAsTable() )?
  2. Sollten die Standardeinstellungen für den Sparserver verwendet werden? Oder sind die Änderungen notwendig?

Danke

    
user3693309 23.07.2015, 20:25
quelle

1 Antwort

7

Ich gehe davon aus, dass Sie sich bereits weiter entwickelt haben, aber für jeden, der diese Antwort findet, ist der Thrift-Server tatsächlich ein Vermittler zwischen einer JDBC-Verbindung und SparkSQL.

Sobald Sie Thrift laufen haben (siehe Spark-Dokumente für eine grundlegende Einführung), verbinden Sie sich über JDBC mit den Hive JDBC-Treibern zu Thrift, und es wiederum leitet Ihre SQL-Abfragen mithilfe eines HiveContext an Spark weiter.

Wenn Sie einen vollständigen Hive-Metastore eingerichtet haben, sollten Sie die Hive-Tabellen sofort in Ihrem JDBC-Client anzeigen können. Andernfalls können Sie Tabellen bei Bedarf erstellen, indem Sie solche Befehle in Ihrem JDBC-Client ausführen:

%Vor%

Hoffe das hilft ein wenig.

    
Ewan Leith 17.11.2015 16:11
quelle