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

Wenn Sie Spark SQL verwenden möchten, stellen Sie über SSH eine 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 geöffnet, die in etwa so aussieht:

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

Führen Sie die folgenden Befehle in der SSH-Sitzung 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 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. Zeilen 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