Spark SQL mit Dataproc Metastore verwenden

Auf dieser Seite wird ein Beispiel für die Verwendung von Spark SQL mit einem Dataproc Metastore-Dienst gezeigt. In diesem Beispiel starten Sie eine Spark SQL-Sitzung in einem Dataproc-Cluster und führen einige Beispielbefehle aus, um eine Datenbank und eine Tabelle zu erstellen.

Hinweise

Verbindung zu Spark SQL herstellen

Um Spark SQL nutzen zu können, stellen Sie über SSH eine Verbindung zum Dataproc-Cluster her, die mit Ihrem Dataproc Metastore-Dienst verknüpft sind. Nachdem Sie eine SSH-Verbindung zum Cluster hergestellt haben, können Sie Spark-Befehle ausführen, um Ihre Metadaten zu verwalten.

Mit Spark SQL verbinden

  1. Rufen Sie in der Google Cloud Console die VM Instanzen.
  2. Klicken Sie in der Liste der VM-Instanzen in der Zeile der Dataproc-VM-Instanz, zu der Sie eine Verbindung herstellen möchten, auf SSH.

In Ihrem Basisverzeichnis auf dem Knoten wird ein Browserfenster mit einer Ausgabe wie folgt geöffnet: zu:

Connected, host fingerprint: ssh-rsa ...
Linux cluster-1-m 3.16.0-0.bpo.4-amd64 ...
...
example-cluster@cluster-1-m:~$

Führen Sie in der SSH-Sitzung die folgenden Befehle aus, um Hive zu starten und eine Datenbank und eine Tabelle zu erstellen:

  1. Starten Sie die Spark-Shell.

    spark-shell
    
  2. Erstellen Sie eine Datenbank namens myDB.

    spark.sql("create database myDB");
    
  3. Verwenden Sie die von Ihnen erstellte Datenbank.

    spark.sql("use myDB");
    
  4. Erstellen Sie eine Tabelle mit dem Namen myTable.

    spark.sql("create table bar(id int,name string)");
    
  5. Listen Sie die Tabellen unter myDatabase auf.

    spark.sql("show tables").show();
    
  6. Lassen Sie sich die Tabellenzeilen in der von Ihnen erstellten Tabelle anzeigen.

    desc myTable;
    

Die Ausführung dieser Befehle sollte eine Ausgabe wie die folgende liefern:

$spark-shell

scala>spark.sql("create database myDB");

scala>spark.sql("use myTable");

scala>spark.sql("create table myTable(id int,name string)");

scala>spark.sql("show tables").show();

+--------+---------+-----------+
|database|tableName|isTemporary|
+--------+---------+-----------+
|    myDB|  myTable|      false|
+--------+---------+-----------+
+--------+---------+-------+
|col_name|data_type|comment|
+--------+---------+-------+
|      id|      int|   null|
|    name|   string|   null|
+--------+---------+-------+

Nächste Schritte