Spark SQL mit Dataproc Metastore verwenden

Auf dieser Seite finden Sie ein Beispiel für die Verwendung von Spark SQL mit einem Dataproc Metastore-Dienst. 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

Wenn Sie Spark SQL verwenden möchten, stellen Sie eine SSH-Verbindung zum Dataproc-Cluster her, der mit Ihrem Dataproc Metastore-Dienst verknüpft ist. Nachdem Sie eine SSH-Verbindung zum Cluster hergestellt haben, können Sie Spark-Befehle ausführen, um Ihre Metadaten zu verwalten.

Verbindung zu Spark SQL herstellen

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
  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.

Im Stammverzeichnis des Knotens wird ein Browserfenster mit einer Ausgabe ähnlich der folgenden geöffnet:

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 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 Datenbank, die Sie erstellt haben.

    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. Tabellenzeilen in der von Ihnen erstellten Tabelle anzeigen

    desc myTable;
    

Wenn Sie diese Befehle ausführen, wird eine Ausgabe ähnlich der folgenden angezeigt:

$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