Megosztás a következőn keresztül:


Oktatóanyag: Adatok betöltése és lekérdezések futtatása Apache Spark-fürtön az Azure HDInsightban

Ebben az oktatóanyagban megtudhatja, hogyan hozhat létre adatkeretet egy csv-fájlból, és hogyan futtathat interaktív Spark SQL-lekérdezéseket egy Apache Spark-fürtön az Azure HDInsightban. A Sparkban az adathalmazok olyan elosztott adatgyűjtemények, amelyek megnevezett oszlopokba vannak rendezve. Az adathalmazok elméleti szinten azonosak a relációs adatbázisokban található táblákkal vagy R/Python-adathalmazokkal.

Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:

  • Adathalmaz létrehozása egy CSV-fájlból
  • Lekérdezések futtatása az adathalmazon

Előfeltételek

Apache Spark-fürt megléte a HDInsightban. Lásd: Apache Spark-fürt létrehozása.

Jupyter-notebook létrehozása

A Jupyter Notebook egy interaktív notebook-környezet, amely számos programozási nyelvet támogat. A notebook lehetővé teszi az adatai használatát, a kódok és markdown-szövegek egyesítését, valamint egyszerű vizualizációk elvégzését.

  1. Szerkessze az URL-címet https://SPARKCLUSTER.azurehdinsight.net/jupyter a Spark-fürt nevére cserélve SPARKCLUSTER . Ezután adja meg a szerkesztett URL-címet egy webböngészőben. Ha a rendszer kéri, adja meg a fürthöz tartozó bejelentkezési hitelesítő adatokat.

  2. A Jupyter weblapján a Spark 2.4-fürtök esetében válassza az Új>PySpark lehetőséget jegyzetfüzet létrehozásához. A Spark 3.1 kiadásnál válassza az Új>PySpark3 lehetőséget a jegyzetfüzet létrehozásához, mert a PySpark kernel már nem érhető el a Spark 3.1-ben.

    Jupyter Notebook létrehozása interaktív Spark SQL-lekérdezés futtatásához.

    A rendszer létrehoz és megnyit egy új jegyzetfüzetet Untitled(Untitled.ipynb) néven.

    Feljegyzés

    Ha a PySpark vagy a PySpark3 kernel használatával hoz létre egy jegyzetfüzetet, a rendszer automatikusan létrehozza a spark munkamenetet az első kódcella futtatásakor. A munkamenetet nem szükséges manuálisan létrehoznia.

Adathalmaz létrehozása egy CSV-fájlból

Az alkalmazások közvetlenül a távoli tároló fájljaiból vagy mappáiból hozhatnak létre adatkereteket, például az Azure Storage-ból vagy az Azure Data Lake Storage-ból; Hive-táblából; vagy a Spark által támogatott egyéb adatforrásokból, például az Azure Cosmos DB-ből, az Azure SQL DB-ből, a DW-ből stb. A következő képernyőképen az oktatóanyaghoz használt HVAC.csv fájl pillanatfelvétele látható. Ez a csv-fájl minden HDInsight Spark-fürtön megtalálható. Az adatok néhány épület hőmérséklet-változását rögzítik.

Pillanatkép az interaktív Spark SQL-lekérdezés adatairól.

  1. Illessze be a következő kódot a Jupyter Notebook üres cellájába, majd nyomja le a SHIFT + ENTER billentyűkombinációt a kód futtatásához. A kód importálja az alábbi forgatókönyvhöz szükséges típusokat:

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

    Amikor interaktív lekérdezést futtat a Jupyterben, a webböngésző ablaka vagy a tabulátor felirata a jegyzetfüzet címével együtt egy (foglalt) állapotot jelenít meg. A jobb felső sarokban lévő PySpark felirat mellett ekkor egy teli kör is megjelenik. A feladat befejezése után ez a jel üres körre változik.

    Az interaktív Spark SQL-lekérdezés állapota.

  2. Jegyezze fel a visszaadott munkamenet-azonosítót. A fenti képen a munkamenet azonosítója 0. Szükség esetén lekérheti a munkamenet adatait, ha arra a helyre navigál https://CLUSTERNAME.azurehdinsight.net/livy/sessions/ID/statements , ahol a CLUSTERNAME a Spark-fürt neve, az azonosító pedig a munkamenet-azonosító száma.

  3. Hozzon létre egy adathalmazt és egy ideiglenes táblát (hvac) a következő kód futtatásával.

    # 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")
    

Lekérdezések futtatása az adathalmazon

A tábla létrehozása után az adatokon interaktív lekérdezéseket futtathat.

  1. Futtassa a következő kódot a notebook egy üres cellájában:

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

    Az alábbi táblázatos kimenet jelenik meg.

    Az interaktív Spark-lekérdezés eredményének táblakimenete.

  2. Az eredményeket egyéb megjelenítési formákban is megtekintheti. Az azonos kimenethez tartozó területgrafikon megjelenítéséhez válassza az Area (Terület) lehetőséget, majd állítsa be a további értékeket az ábra szerint.

    Interaktív Spark-lekérdezés eredményének területdiagramja.

  3. A jegyzetfüzet menüsávjában keresse meg a Fájl>mentése és az Ellenőrzőpont lehetőséget.

  4. Ha most kezd bele a következő oktatóanyagba, hagyja nyitva a notebookot. Ha nem, állítsa le a jegyzetfüzetet a fürterőforrások felszabadításához: a jegyzetfüzet menüsávjában keresse meg a Fájlbezárás>és a Leállítás lehetőséget.

Az erőforrások eltávolítása

A HDInsight segítségével az adatok és a Jupyter Notebookok az Azure Storage-ban vagy az Azure Data Lake Storage-ban vannak tárolva, így biztonságosan törölheti a fürtöket, ha nincsenek használatban. A HDInsight-fürtökért is díjat számítunk fel, még akkor is, ha nincs használatban. Mivel a fürt díjai sokszor nagyobbak, mint a tárolási díjak, érdemes törölni a fürtöket, ha nincsenek használatban. Ha azt tervezi, hogy rögtön elvégzi a következő oktatóanyagot is, akkor érdemes lehet megtartani a fürtöt.

Nyissa meg az Azure Portalon a fürtöt, és válassza a Törlés lehetőséget.

HDInsight-fürt törlése.

Az erőforráscsoport nevét kiválasztva is megnyílik az erőforráscsoport oldala, ahol kiválaszthatja az Erőforráscsoport törlése elemet. Az erőforráscsoport törlésekor a rendszer a HDInsight Spark-fürtöt és az alapértelmezett tárfiókot is törli.

Következő lépések

Ebben az oktatóanyagban megtanulta, hogyan hozhat létre adatkeretet egy csv-fájlból, és hogyan futtathat interaktív Spark SQL-lekérdezéseket egy Apache Spark-fürtön az Azure HDInsightban. A következő cikkből megtudhatja, hogy az Apache Sparkban regisztrált adatok hogyan állíthatók be egy OLYAN BI-elemző eszközbe, mint a Power BI.