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

V tomto kurzu se naučíte, jak vytvořit datový rámec ze souboru CSV a jak spouštět interaktivní dotazy Spark SQL s Apache Sparkm clusterem 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

PředpokladyPrerequisites

Cluster Apache Spark ve službě HDInsight.An Apache Spark cluster on HDInsight. Viz Vytvoření clusteru 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 tak, že nahradíte SPARKCLUSTER názvem vašeho clusteru Spark.Edit the URL https://SPARKCLUSTER.azurehdinsight.net/jupyter by replacing SPARKCLUSTER with the name of your Spark cluster. Pak zadejte upravenou adresu URL do webového prohlížeče.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. Na webové stránce Jupyter vyberte nový > PySpark pro vytvoření poznámkového bloku.From the Jupyter web page, Select New > PySpark to create a notebook.

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

    Vytvoří se nový Poznámkový blok, který se 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 mohou vytvářet datový rámec přímo ze souborů nebo složek na vzdáleném úložišti, jako je například Azure Storage nebo Azure Data Lake Storage; z tabulky podregistru; nebo z jiných zdrojů dat, které podporuje Spark, například Cosmos DB, Azure SQL DB, DW a tak dále.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, and so on. Následující snímek obrazovky ukazuje snímek souboru HVAC.csv použitého v tomto kurzu.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 Jupyter poznámkového bloku a stisknutím klávesy SHIFT + ENTER kód spusťte.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.

    Výstup tabulky pro interaktivní výsledek 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 interaktivního dotazu Spark – výsledekArea graph of interactive Spark query result

  3. V řádku nabídek poznámkového bloku přejděte na soubor > Uložit a kontrolní bod.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, vypněte Poznámkový blok a uvolněte prostředky clusteru: z řádku nabídek Poznámkový blok přejděte na soubor > 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

Se službou HDInsight jsou vaše data a Jupyter poznámkové bloky uložené v Azure Storage nebo Azure Data Lake Storage, takže můžete cluster bezpečně odstranit, pokud se nepoužívá.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 isn't in use. Účtují se vám také poplatky za cluster HDInsight, a to i v případě, že se už nepoužívá.You're also charged for an HDInsight cluster, even when it's not in use. Vzhledem k tomu, že se poplatky za cluster mnohokrát účtují rychleji než poplatky za úložiště, má ekonomický smysl odstraňovat clustery, když se nepoužívají.Since the charges for the cluster are many times more than the charges for storage, it makes economic sense to delete clusters when they aren't 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.

Odstranit cluster 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ší krokyNext steps

V tomto kurzu jste zjistili, jak vytvořit datový rámec ze souboru CSV a jak spouštět interaktivní dotazy Spark SQL s Apache Sparkm clusterem 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. V dalším článku zjistíte, jak se data, která jste zaregistrovali v Apache Spark můžete načíst do nástroje BI Analytics, jako je například 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.