Explorar os dados de origem para um pipeline de dados

Uma primeira passo comum na criação de um pipeline de dados é entender os dados de origem para o pipeline. Nesta passo, você executará as utilidades do Databricks e os comandos PySpark em um Notebook para examinar os dados de origem e os artefatos.

Para saber mais sobre a análise exploratória de dados, consulte análise exploratória de dados em Databricks: ferramentas e técnicas.

Vídeo: introdução ao NotebookDatabricks

Para obter uma introdução ao Databricks Notebook, assista a este vídeo:

Criar um Notebook de exploração de dados

  1. Na barra lateral, clique em Novo ícone Novo e selecione Notebook no menu. O Notebook é aberto com um nome default que você pode substituir.

  2. Digite um nome para o Notebook, por exemplo, Explore songs data. Por default:

    • Python é o idioma selecionado.

    • O Notebook está anexado aos últimos clusters que você usou. Neste caso, os clusters que você criou no passo 1: Crie um clusters.

  3. Para view o conteúdo do diretório que contém o dataset, digite o seguinte na primeira célula do Notebook, clique em menu de execução e selecione Célula de execução.

    %fs ls "/databricks-datasets/songs/data-001"
    

    caminho

    nome

    tamanho

    hora da modificação

    1

    dbfs:/databricks-datasets/songs/README.md

    README.md

    1719

    1454620183000

    2

    dbfs:/databricks-datasets/songs/data-001/

    data-001/

    0

    1672791237846

    3

    dbfs:/databricks-datasets/songs/data-002/

    data-002/

    0

    1672791237846

Explorar os dados

  1. O arquivo README contém informações sobre o dataset, incluindo uma descrição do esquema de dados. A informação do esquema é usada no próximo passo ao ingerir os dados. Para view o conteúdo do README, clique em Acento circunflexo no menu de ações da célula, selecione Adicionar célula abaixo, insira o seguinte na nova célula, clique em menu de execução, e selecione a célula de execução.

    %fs head --maxBytes=10000 "/databricks-datasets/songs/README.md"
    
    Sample of Million Song Dataset
    ===============================
    
    ## Source
    This data is a small subset of the [Million Song Dataset](http://labrosa.ee.columbia.edu/millionsong/).
    The original data was contributed by The Echo Nest.
    Prepared by T. Bertin-Mahieux <tb2332 '@' columbia.edu>
    
    ## Attribute Information
    - artist_id:string
    - artist_latitude:double
    - artist_longitude:double
    - artist_location:string
    - artist_name:string
    - duration:double
    - end_of_fade_in:double
    - key:int
    - key_confidence:double
    - loudness:double
    - release:string
    - song_hotnes:double
    - song_id:string
    - start_of_fade_out:double
    - tempo:double
    - time_signature:double
    - time_signature_confidence:double
    - title:string
    - year:double
    - partial_sequence:int
    ...
    
  2. Os registros usados neste exemplo estão no diretório /databricks-datasets/songs/data-001/ . Para view o conteúdo deste diretório, clique em Acento circunflexo no menu de ações da célula, selecione Adicionar célula abaixo, insira o seguinte na nova célula, clique em menu de execução, e selecione a célula de execução.

    %fs ls "/databricks-datasets/songs/data-001"
    

    caminho

    nome

    tamanho

    hora da modificação

    1

    dbfs:/databricks-datasets/songs/data-001/header.txt

    header.txt

    377

    1454633901000

    2

    dbfs:/databricks-datasets/songs/data-001/part-00000

    parte-00000

    52837

    1454547464000

    3

    dbfs:/databricks-datasets/songs/data-001/part-00001

    parte-00001

    52469

    1454547465000

  3. Como o LEIA-ME e os nomes dos arquivos não indicam o formato do arquivo, você pode view uma amostra dos registros para entender melhor o conteúdo e o formato de cada registro. Para ler e exibir os dez primeiros registros de um dos arquivos de dados, clique em Acento circunflexo no menu de ações da célula, selecione Adicionar célula abaixo, insira o seguinte na nova célula, clique em menu de execução e selecione Célula de execução.

    %fs head --maxBytes=10000 "/databricks-datasets/songs/data-001/part-00000"
    
     AR81V6H1187FB48872  nan     nan             Earl Sixteen    213.7073        0.0     11      0.419   -12.106 Soldier of Jah Army     nan     SOVNZSZ12AB018A9B8      208.289 125.882 1       0.0     Rastaman        2003    --
     ARVVZQP11E2835DBCB  nan     nan             Wavves  133.25016       0.0     0       0.282   0.596   Wavvves 0.471578247701  SOJTQHQ12A8C143C5F      128.116 89.519  1       0.0     I Want To See You (And Go To The Movies)        2009    --
     ARFG9M11187FB3BBCB  nan     nan     Nashua USA      C-Side  247.32689       0.0     9       0.612   -4.896  Santa Festival Compilation 2008 vol.1   nan     SOAJSQL12AB0180501      242.196 171.278 5       1.0     Loose on the Dancefloor 0       225261
     ...
    

    Você pode observar algumas coisas sobre os dados ao visualizar uma amostra dos registros. Você usará essas observações mais tarde ao processar os dados:

    • Os registros não contêm um cabeçalho. Em vez disso, o cabeçalho é armazenado em um arquivo separado no mesmo diretório.

      • Os arquivos parecem estar no formato de valores separados por tabulações (TSV).

      • Alguns campos estão faltando ou são inválidos.

  4. Para explorar e analisar melhor o uso de dados, essas observações para carregar os dados de músicas formatados em TSV em um arquivo PySpark DataFrame. Para fazer isso, clique em Acento circunflexo no menu de ações da célula, selecione Add Cell abaixo, digite o seguinte código na nova célula e clique em menu de execução > execução Cell.

    df = spark.read.format('csv').option("sep", "\t").load('dbfs:/databricks-datasets/songs/data-001/part-00000')
    df.display()
    

    Como falta um cabeçalho no arquivo de dados, os nomes das colunas são exibidos como _c0, _c1 e assim por diante. Cada coluna é interpretada como um string independentemente do tipo de dados real. A ingestão dos dados brutos no próximo passo mostra um exemplo de como você pode impor um esquema válido ao carregar os dados.

    DataFrame criado a partir de dados brutos de músicas