Usar o Spark SQL com o Dataproc Metastore

Nesta página, mostramos um exemplo de uso do Spark SQL com um serviço Metastore do Dataproc. Neste exemplo, você inicia uma sessão do Spark SQL em um cluster do Dataproc e executa alguns comandos de amostra para criar um banco de dados e uma tabela.

Antes de começar

Conecte-se ao Spark SQL

Para começar a usar o Spark SQL, use o SSH para se conectar ao cluster do Dataproc associado ao serviço Metastore do Dataproc. Depois de se conectar ao cluster com SSH, execute comandos do Spark para gerenciar seus metadados.

Para se conectar ao Spark SQL

  1. No console do Google Cloud, acesse a página Instâncias de VM.
  2. Na lista de instâncias de máquina virtual, clique em SSH na linha da instância de VM do Dataproc a que você quer se conectar.

Uma janela do navegador é aberta no diretório principal do nó com uma saída semelhante a esta:

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

Para iniciar o Hive e criar um banco de dados e uma tabela, execute os seguintes comandos na sessão SSH:

  1. Inicie o shell do Spark.

    spark-shell
    
  2. Crie um banco de dados denominado myDB.

    spark.sql("create database myDB");
    
  3. Use o banco de dados que você criou.

    spark.sql("use myDB");
    
  4. Crie uma tabela com o nome myTable.

    spark.sql("create table bar(id int,name string)");
    
  5. Liste as tabelas em myDatabase.

    spark.sql("show tables").show();
    
  6. Mostre as linhas da tabela que você criou.

    desc myTable;
    

A execução desses comandos mostra uma saída semelhante à seguinte:

$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|
+--------+---------+-------+

A seguir