Självstudie: Läsa in data och köra frågor i ett Apache Spark-kluster i Azure HDInsight

I den här självstudien får du lära dig hur du skapar en dataframe från en CSV-fil och hur du kör interaktiva Spark SQL-frågor mot ett Apache Spark kluster i Azure HDInsight. I Spark är en dataram en distribuerad datasamling som har ordnats i namngivna kolumner. Begreppsmässigt motsvarar dataramen en tabell i en relationsdatabas eller en dataram i R/Python.

I den här guiden får du lära dig att:

  • Skapa en dataram från en csv-fil
  • Köra frågor i dataramen

Förutsättningar

Ett Apache Spark-kluster i HDInsight. Se skapa ett Apache Spark-kluster.

Skapa en Jupyter Notebook

Jupyter Notebook är en interaktiv anteckningsboksmiljö som stöder flera olika datorspråk. Du kan använda anteckningsboken för att interagera med dina data, kombinera kod med markdown-text och utföra enkla visualiseringar.

  1. Redigera URL: en https://SPARKCLUSTER.azurehdinsight.net/jupyter genom SPARKCLUSTER att ersätta med namnet på ditt Spark-kluster. Ange sedan den redigerade URL-adressen i en webbläsare. Ange autentiseringsuppgifterna för klustret om du uppmanas att göra det.

  2. På webb sidan Jupyter väljer du ny > PySpark för att skapa en antecknings bok.

    Skapa en Jupyter Notebook för att köra interaktiv Spark SQL-fråga

    En ny antecknings bok skapas och öppnas med namnet namnlös ( Untitled.ipynb ).

    Anteckning

    Genom att använda PySpark-kärnan för att skapa en anteckningsbok skapas automatiskt sessionen spark för dig när du kör den första kodcellen. Du behöver inte uttryckligen skapa sessionen.

Skapa en dataram från en csv-fil

Program kan skapa dataframes direkt från filer eller mappar på fjärrlagringen, till exempel Azure Storage eller Azure Data Lake Storage. från en Hive-tabell; eller från andra data källor som stöds av Spark, till exempel Cosmos DB, Azure SQL DB, DW och så vidare. Följande skärmbild visar en ögonblicksbild av den HVAC.csv-fil som används i självstudien. Csv-filen finns i alla HDInsight Spark-kluster. Datan visar temperaturvariationer i vissa byggnader.

Ögonblicks bild av data för interaktiv Spark SQL-fråga

  1. Klistra in följande kod i en tom cell i Jupyter Notebook och tryck sedan på SKIFT + RETUR för att köra koden. Koden importerar de typer som krävs för det här scenariot:

    from pyspark.sql import *
    from pyspark.sql.types import *
    

    När du kör en interaktiv fråga i Jupyter visar fönstret i webbläsaren eller fliktiteln statusen (Upptagen) tillsammans med anteckningsbokens titel. Du ser även en fylld cirkel bredvid PySpark-texten i det övre högra hörnet. När jobbet har slutförts ändras detta till en tom cirkel.

    Status för interaktiv Spark SQL-fråga

  2. Observera att sessions-ID: t returnerades. Från bilden ovan är sessions-ID: t 0. Om du vill kan du hämta sessionsinformation genom att gå till https://CLUSTERNAME.azurehdinsight.net/livy/sessions/ID/statements där kluster namn är namnet på ditt Spark-kluster och ID-numret för din sessions-ID.

  3. Kör följande kod för att skapa en dataram och en tillfällig tabell (hvac).

    # Create a dataframe and table from sample data
    csvFile = spark.read.csv('/HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv', header=True, inferSchema=True)
    csvFile.write.saveAsTable("hvac")
    

Köra frågor i dataramen

När tabellen har skapats kan du köra en interaktiv fråga på datan.

  1. Kör följande kod i en tom cell i anteckningsboken:

    %%sql
    SELECT buildingID, (targettemp - actualtemp) AS temp_diff, date FROM hvac WHERE date = \"6/1/13\"
    

    Följande tabellutdata visas.

    Tabell resultatet av interaktivt Spark-frågeresultat

  2. Du kan också visa resultaten i andra visualiseringar. Om du vill se ett ytdiagram för samma utdata väljer du Yta och anger sedan de andra värden som visas.

    Ytdiagram i interaktivt Spark-frågeresultat

  3. Från meny raden i anteckningsbokslayout navigerar du till filen > Save och Checkpoint.

  4. Om du ska starta nästa självstudie direkt kan du lämna anteckningsboken öppen. Annars stänger du antecknings boken för att frigöra kluster resurserna: från meny raden i anteckningsbok-menyn navigerar du till filen > Stäng och stoppa.

Rensa resurser

Med HDInsight lagras dina data och Jupyter antecknings böcker i Azure Storage eller Azure Data Lake Storage, så att du kan ta bort ett kluster på ett säkert sätt när det inte används. Du debiteras också för ett HDInsight-kluster, även när det inte används. Eftersom avgifterna för klustret är flera gånger mer än avgifterna för lagring, är det ekonomiskt klokt att ta bort kluster när de inte används. Om du tänker arbeta med nästa självstudie direkt kan du behålla klustret.

Öppna klustret i Azure Portal och välj Ta bort.

Ta bort HDInsight-kluster

Du kan också välja resursgruppnamnet för att öppna resursgruppsidan. Välj sedan Ta bort resursgrupp. När resursgruppen tas bort, tas även HDInsight Spark-klustret och standardkontot för lagring bort.

Nästa steg

I den här självstudien har du lärt dig hur du skapar en dataframe från en CSV-fil och hur du kör interaktiva Spark SQL-frågor mot ett Apache Spark kluster i Azure HDInsight. Gå vidare till nästa artikel för att se hur de data som du har registrerat i Apache Spark kan hämtas till ett BI-analysverktyg såsom Power BI.