Usar o Spark SQL com o metastore do Dataproc

Nesta página, mostramos um exemplo de uso do Spark SQL com um metastore do Dataproc serviço. Neste exemplo, você inicia uma sessão do Spark SQL em um cluster do Dataproc e executa alguns comandos de exemplo 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 do metastore do Dataproc. Depois de se conectar a cluster com SSH, é possível executar comandos Spark para gerenciar seus metadados.

Para se conectar ao Spark SQL

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

Uma janela do navegador é aberta no diretório principal do nó, com uma saída semelhante para o seguinte:

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 chamada 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 a esta:

$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