Kurz: Načtení dat a spouštění dotazů v clusteru Apache Spark v Azure HDInsightTutorial: Load data and run queries on an Apache Spark cluster in Azure HDInsight

V tomto kurzu se dozvíte, jak vytvořit datový rámec ze souboru csv a jak spouštět interaktivní dotazy Spark SQL na Apache Spark clusteru v Azure HDInsight.In this tutorial, you learn how to create a dataframe from a csv file, and how to run interactive Spark SQL queries against an Apache Spark cluster in Azure HDInsight. Ve Sparku je datový rámec distribuovaná kolekce dat uspořádaných do pojmenovaných sloupců.In Spark, a dataframe is a distributed collection of data organized into named columns. Datový rámec je koncepčním ekvivalentem tabulky v relační databázi nebo datového rámce v R nebo Pythonu.Dataframe is conceptually equivalent to a table in a relational database or a data frame in R/Python.

V tomto kurzu se naučíte:In this tutorial, you learn how to:

  • Vytvoření datového rámce ze souboru CSVCreate a dataframe from a csv file
  • Spouštění dotazů nad datovým rámcemRun queries on the dataframe

PožadavkyPrerequisites

Cluster Apache Spark ve službě HDInsight.An Apache Spark cluster on HDInsight. Zobrazit vytvořit cluster Apache Spark.See Create an Apache Spark cluster.

Vytvoření poznámkového bloku JupyterCreate a Jupyter notebook

Jupyter Notebook je interaktivní prostředí poznámkového bloku, které podporuje různé programovací jazyky.Jupyter Notebook is an interactive notebook environment that supports various programming languages. Poznámkový blok umožňuje pracovat s daty, kombinovat kód s textem markdownu a provádět jednoduché vizualizace.The notebook allows you to interact with your data, combine code with markdown text and perform simple visualizations.

  1. Upravte adresu URL https://SPARKCLUSTER.azurehdinsight.net/jupyter nahrazením SPARKCLUSTER s názvem vašeho clusteru Spark.Edit the URL https://SPARKCLUSTER.azurehdinsight.net/jupyter by replacing SPARKCLUSTER with the name of your Spark cluster. Potom zadejte adresu URL upravených ve webovém prohlížeči.Then enter the edited URL in a web browser. Po zobrazení výzvy zadejte přihlašovací údaje clusteru.If prompted, enter the cluster login credentials for the cluster.

  2. Z Jupyter webové stránky, vyberte nový > PySpark vytvoření poznámkového bloku.From the Jupyter web page, Select New > PySpark to create a notebook.

    Vytvoření poznámkového bloku Jupyter pro spuštění interaktivního dotazu Spark SQLCreate a Jupyter Notebook to run interactive Spark SQL query

    Nový poznámkový blok se vytvoří a otevře s názvem bez názvu (Untitled.ipynb).A new notebook is created and opened with the name Untitled(Untitled.ipynb).

    Poznámka

    Díky použití jádra PySpark k vytvoření poznámkového bloku se relace spark vytvoří automaticky za vás při spuštění první buňky kódu.By using the PySpark kernel to create a notebook, the spark session is automatically created for you when you run the first code cell. Není potřeba relaci vytvářet explicitně.You do not need to explicitly create the session.

Vytvoření datového rámce ze souboru CSVCreate a dataframe from a csv file

Aplikace může vytvářet datové rámce přímo ze souborů nebo složek ve vzdáleném úložišti, jako je Azure Storage nebo Azure Data Lake Storage, z tabulky Hive nebo z dalších zdrojů dat podporovaných Sparkem, jako je služba Cosmos DB, Azure SQL Database, Data Warehouse atd. Následující snímek obrazovky ukazuje snímek souboru HVAC.csv použitého v tomto kurzu.Applications can create dataframes directly from files or folders on the remote storage such as Azure Storage or Azure Data Lake Storage; from a Hive table; or from other data sources supported by Spark, such as Cosmos DB, Azure SQL DB, DW, etc. The following screenshot shows a snapshot of the HVAC.csv file used in this tutorial. Tento soubor CSV je součástí všech clusterů HDInsight Spark.The csv file comes with all HDInsight Spark clusters. Data zaznamenávají změny teploty několika budov.The data captures the temperature variations of some buildings.

Snímek dat pro interaktivní dotaz Spark SQLSnapshot of data for interactive Spark SQL query

  1. Vložte následující kód do prázdné buňky poznámkového bloku Jupyter a potom stiskněte klávesu SHIFT + ENTER spuštění kódu.Paste the following code in an empty cell of the Jupyter notebook, and then press SHIFT + ENTER to run the code. Kód naimportuje typy potřebné pro tento scénář:The code imports the types required for this scenario:

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

    Po spuštění interaktivního dotazu v Jupyter se název okna nebo karty webového prohlížeče zobrazí jako (Zaneprázdněn) společně s názvem poznámkového bloku.When running an interactive query in Jupyter, the web browser window or tab caption shows a (Busy) status along with the notebook title. Zobrazí se také plný kroužek vedle textu PySpark v pravém horním rohu.You also see a solid circle next to the PySpark text in the top-right corner. Po dokončení úlohy se změní na prázdný kruh.After the job is completed, it changes to a hollow circle.

    Stav interaktivního dotazu Spark SQLStatus of interactive Spark SQL query

  2. Spuštěním následujícího kódu vytvořte datový rámec a dočasnou tabulku (hvac).Run the following code to create a dataframe and a temporary table (hvac) by running the following code.

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

Spouštění dotazů nad datovým rámcemRun queries on the dataframe

Po vytvoření tabulky můžete nad daty spustit interaktivní dotaz.Once the table is created, you can run an interactive query on the data.

  1. V prázdné buňce poznámkového bloku spusťte následující kód:Run the following code in an empty cell of the notebook:

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

    Zobrazí se následující tabulkový výstup.The following tabular output is displayed.

    Tabulkový výstup výsledku interaktivního dotazu SparkTable output of interactive Spark query result

  2. Výsledky můžete také zobrazit v dalších vizualizacích.You can also see the results in other visualizations as well. Pokud chcete výstup zobrazit v podobě plošného grafu, vyberte Oblast a pak nastavte další hodnoty následujícím způsobem.To see an area graph for the same output, select Area then set other values as shown.

    Plošný graf výsledku interaktivního dotazu SparkArea graph of interactive Spark query result

  3. V panelu nabídek poznámkového bloku, přejděte na souboru > uložit a kontrolního bodu.From the notebook menu bar, navigate to File > Save and Checkpoint.

  4. Pokud právě začínáte s dalším kurzem, nechte poznámkový blok otevřený.If you're starting the next tutorial now, leave the notebook open. Pokud ne, vypnout a uvolnit tak prostředky clusteru Poznámkový blok: přejděte na panelu nabídek poznámkového bloku souboru > zavřít a zastavit.If not, shut down the notebook to release the cluster resources: from the notebook menu bar, navigate to File > Close and Halt.

Vyčištění prostředkůClean up resources

HDInsight vaše data a poznámkové bloky Jupyter uloží ve službě Azure Storage nebo Azure Data Lake Storage, takže je můžete clusteru bezpečně odstranit, až nebude používán.With HDInsight, your data and Jupyter notebooks are stored in Azure Storage or Azure Data Lake Storage, so you can safely delete a cluster when it is not in use. Za cluster služby HDInsight se účtují poplatky, i když se nepoužívá.You are also charged for an HDInsight cluster, even when it is not in use. Vzhledem k tomu, že poplatky za cluster představují několikanásobek poplatků za úložiště, dává ekonomický smysl odstraňovat clustery, které nejsou používány.Since the charges for the cluster are many times more than the charges for storage, it makes economic sense to delete clusters when they are not in use. Pokud se chystáte hned začít pracovat na dalším kurzu, měli byste cluster zachovat.If you plan to work on the next tutorial immediately, you might want to keep the cluster.

Otevřete cluster na webu Azure Portal a vyberte Odstranit.Open the cluster in the Azure portal, and select Delete.

Odstranění clusteru HDInsightDelete HDInsight cluster

Můžete také výběrem názvu skupiny prostředků otevřít stránku skupiny prostředků a pak vybrat Odstranit skupinu prostředků.You can also select the resource group name to open the resource group page, and then select Delete resource group. Odstraněním skupiny prostředků odstraníte cluster HDInsight Spark i výchozí účet úložiště.By deleting the resource group, you delete both the HDInsight Spark cluster, and the default storage account.

Další postupNext steps

V tomto kurzu jste zjistili, jak vytvořit datový rámec ze souboru csv a jak spouštět interaktivní dotazy Spark SQL proti clusteru Apache Spark v Azure HDInsight.In this tutorial, you learned how to create a dataframe from a csv file, and how to run interactive Spark SQL queries against an Apache Spark cluster in Azure HDInsight. Přejděte k dalšímu článku, pokud chcete zobrazit, jak můžete načíst data, která jste zaregistrovali v Apache Spark na nástroj pro analýzu BI, jako je Power BI.Advance to the next article to see how the data you registered in Apache Spark can be pulled into a BI analytics tool such as Power BI.