Spark SQL mit Dataproc Metastore verwenden

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

Hinweise

Mit Spark SQL verbinden

Wenn Sie Spark SQL verwenden möchten, stellen Sie über SSH eine Verbindung zum Dataproc-Cluster her, der Ihrem Dataproc Metastore-Dienst zugeordnet ist. Nachdem Sie über SSH eine 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.

In Ihrem Basisverzeichnis auf dem Knoten wird ein Browserfenster mit einer Ausgabe wie 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 die folgenden Befehle in der SSH-Sitzung aus, um Hive zu starten und eine Datenbank sowie 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. Zeigt die Tabellenzeilen in der von Ihnen erstellten Tabelle an.

    desc myTable;
    

Die Ausgabe dieser Befehle sieht in etwa so aus:

$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