Análise com o Apache SparkAnalyze with Apache Spark

Analisar os dados de Táxi de Nova York no armazenamento de blobs usando o SparkAnalyze NYC Taxi data in blob storage using Spark

Neste tutorial, você conhecerá as etapas básicas usadas para carregar e analisar dados com o Apache Spark para o Azure Synapse.In this tutorial, you'll learn the basic steps to load and analyze data with Apache Spark for Azure Synapse.

  1. No hub Dados, clique em Adicionar um novo recurso (botão de mais em cima de Vinculado) >> Procurar na galeria.In the Data hub, click on Add a new resource(plus button above Linked) >> Browse gallery.
  2. Encontre Comissão de Táxi e Limusines de Nova York – registros de viagem de táxi amarelo e clique nele.Find NYC Taxi & Limousine Commission - yellow taxi trip records and click on it.
  3. Na parte inferior da página, pressione Continuar e, depois disso, Adicionar conjunto de dados.On the bottom of the page press Continue and after that Add dataset.
  4. Agora, no hub Dados, em Vinculado, clique com o botão direito do mouse em Armazenamento de Blobs do Azure >> Conjuntos de Dados de Exemplo >> nyc_tlc_yellow e selecione Novo notebookNow in Data hub under Linked right-click on Azure Blob Storage >> Sample Datasets >> nyc_tlc_yellow and select New notebook
  5. Isso criará um Notebook com o seguinte código:This will create a new Notebook with the following code:
    from azureml.opendatasets import NycTlcYellow
    
    data = NycTlcYellow()
    data_df = data.to_spark_dataframe()
    display(data_df.limit(10))
    
  6. No notebook, escolha um pool do Spark sem servidor no menu Anexar aIn the notebook, choose a serverless Spark pool in the Attach to menu
  7. Selecione Executar na célulaSelect Run on the cell
  8. Se você quiser ver apenas o esquema do dataframe, execute uma célula com o seguinte código:If you just want to see the schema of the dataframe run a cell with the following code:
    data_df.printSchema()
    

Carregar os dados de táxi de Nova York no banco de dados nyctaxi do SparkLoad the NYC Taxi data into the Spark nyctaxi database

Temos dados disponíveis em uma tabela em SQLPOOL1.We have data available in a table in SQLPOOL1. Carregue-os em um banco de dados do Spark chamado nyctaxi.Load it into a Spark database named nyctaxi.

  1. No Synapse Studio, acesse o hub Desenvolver.In Synapse Studio, go to the Develop hub.

  2. Selecione + > Notebook.Select + > Notebook.

  3. Na parte superior do notebook, defina o valor Anexar a como Spark1.On the top of the notebook, set the Attach to value to Spark1.

  4. Selecione Adicionar código para adicionar uma célula de código do notebook e depois cole o seguinte texto:Select Add code to add a notebook code cell, and then paste the following text:

    %%spark
    spark.sql("CREATE DATABASE IF NOT EXISTS nyctaxi")
    val df = spark.read.sqlanalytics("SQLPOOL1.dbo.Trip") 
    df.write.mode("overwrite").saveAsTable("nyctaxi.trip")
    
  5. Acesse o hub Dados, clique com o botão direito do mouse em Bancos de dados e selecione Atualizar.Go to the Data hub, right-click Databases, and then select Refresh. Agora você deve ver estes bancos de dados:You should see these databases:

    • SQLPOOL1 (SQL)SQLPOOL1 (SQL)
    • nyctaxi (Spark)nyctaxi (Spark)

Analisar os dados de táxi de NYC usando Spark e notebooksAnalyze the NYC Taxi data using Spark and notebooks

  1. Retorne ao notebook.Return to your notebook.

  2. Crie uma célula de código e insira o texto a seguir.Create a new code cell and enter the following text. Em seguida, execute a célula para mostrar os dados de táxi de Nova York que carregamos no banco de dados nyctaxi do Spark.Then run the cell to show the NYC Taxi data we loaded into the nyctaxi Spark database.

    %%pyspark
    df = spark.sql("SELECT * FROM nyctaxi.trip") 
    display(df)
    
  3. Execute o código a seguir para realizar a mesma análise que fizemos anteriormente com o pool de SQL dedicado SQLPOOL1.Run the following code to do the same analysis that we did earlier with the dedicated SQL pool SQLPOOL1. Esse código salva os resultados da análise em uma tabela chamada nyctaxi.passengercountstats e exibe os resultados.This code saves the results of the analysis into a table called nyctaxi.passengercountstats and visualizes the results.

    %%pyspark
    df = spark.sql("""
       SELECT PassengerCount,
           SUM(TripDistanceMiles) as SumTripDistance,
           AVG(TripDistanceMiles) as AvgTripDistance
       FROM nyctaxi.trip
       WHERE TripDistanceMiles > 0 AND PassengerCount > 0
       GROUP BY PassengerCount
       ORDER BY PassengerCount
    """) 
    display(df)
    df.write.saveAsTable("nyctaxi.passengercountstats")
    
  4. Nos resultados da célula, selecione Gráfico para visualizar os dados exibidos.In the cell results, select Chart to see the data visualized.

Carregar dados de uma tabela do Spark em uma tabela do pool de SQL dedicadoLoad data from a Spark table into a dedicated SQL pool table

Anteriormente, copiamos dados da tabela do pool de SQL dedicado SQLPOOL1.dbo.Trip na tabela do Spark nyctaxi.trip.Earlier we copied data from the dedicated SQL pool table SQLPOOL1.dbo.Trip into the Spark table nyctaxi.trip. Em seguida, usando o Spark, agregamos os dados na tabela do Spark nyctaxi.passengercountstats.Then, using Spark, we aggregated the data into the Spark table nyctaxi.passengercountstats. Agora, copiaremos os dados de nyctaxi.passengercountstats em uma tabela de pools de SQL dedicado chamada SQLPOOL1.dbo.PassengerCountStats.Now we'll copy the data from nyctaxi.passengercountstats into a dedicated SQL pool table called SQLPOOL1.dbo.PassengerCountStats.

Execute a célula a seguir no seu notebook.Run the following cell in your notebook. Ela copia a tabela do Spark agregada de volta na tabela do pool de SQL dedicado.It copies the aggregated Spark table back into the dedicated SQL pool table.

%%spark
val df = spark.sql("SELECT * FROM nyctaxi.passengercountstats")
df.write.sqlanalytics("SQLPOOL1.dbo.PassengerCountStats", Constants.INTERNAL )

Próximas etapasNext steps