Använda HDInsight Spark-kluster för att analysera data i Data Lake Storage Gen1
I den här artikeln använder du Jupyter Notebook som är tillgängligt med HDInsight Spark-kluster för att köra ett jobb som läser data från ett Data Lake Storage-konto.
Förutsättningar
Azure Data Lake Storage Gen1-konto. Följ anvisningarna i Kom igång med Azure Data Lake Storage Gen1 med hjälp av Azure-portalen.
Azure HDInsight Spark-kluster med Data Lake Storage Gen1 som lagring. Följ anvisningarna i Snabbstart: Konfigurera kluster i HDInsight.
Förbereda data
Kommentar
Du behöver inte utföra det här steget om du har skapat HDInsight-klustret med Data Lake Storage som standardlagring. Processen för att skapa klustret lägger till exempeldata i det Data Lake Storage-konto som du anger när du skapar klustret. Hoppa till avsnittet Använd HDInsight Spark-kluster med Data Lake Storage.
Om du har skapat ett HDInsight-kluster med Data Lake Storage som ytterligare lagring och Azure Storage Blob som standardlagring bör du först kopiera några exempeldata till Data Lake Storage-kontot. Du kan använda exempeldata från Azure Storage Blob som är associerad med HDInsight-klustret.
Öppna en kommandotolk och navigera till katalogen där AdlCopy är installerat, vanligtvis
%HOMEPATH%\Documents\adlcopy
.Kör följande kommando för att kopiera en specifik blob från källcontainern till Data Lake Storage:
AdlCopy /source https://<source_account>.blob.core.windows.net/<source_container>/<blob name> /dest swebhdfs://<dest_adls_account>.azuredatalakestore.net/<dest_folder>/ /sourcekey <storage_account_key_for_storage_container>
Kopiera HVAC.csv exempeldatafil på /HdiSamples/HdiSamples/SensorSampleData/hvac/ till Azure Data Lake Storage-kontot. Kodfragmentet bör se ut så här:
AdlCopy /Source https://mydatastore.blob.core.windows.net/mysparkcluster/HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv /dest swebhdfs://mydatalakestore.azuredatalakestore.net/hvac/ /sourcekey uJUfvD6cEvhfLoBae2yyQf8t9/BpbWZ4XoYj4kAS5Jf40pZaMNf0q6a8yqTxktwVgRED4vPHeh/50iS9atS5LQ==
Varning
Kontrollera att fil- och sökvägsnamnen använder rätt versaler.
Du uppmanas att ange autentiseringsuppgifterna för Den Azure-prenumeration som du har ditt Data Lake Storage-konto under. Du bör se utdata som liknar följande fragment:
Initializing Copy. Copy Started. 100% data copied. Copy Completed. 1 file copied.
Datafilen (HVAC.csv) kopieras under en mapp /hvac i Data Lake Storage-kontot.
Använda ett HDInsight Spark-kluster med Data Lake Storage Gen1
Från Azure-portalen går du till startsidan och klickar på panelen för ditt Apache Spark-kluster (om du fäster det på startsidan). Du kan också navigera till ditt kluster under Bläddra bland alla>HDInsight-kluster.
Klicka på Snabblänkar på Spark-klusterbladet och sedan på Jupyter Notebook på Klusterinstrumentpanel-bladet. Ange administratörsautentiseringsuppgifterna för klustret om du uppmanas att göra det.
Kommentar
Du kan också nå Jupyter Notebook för ditt kluster genom att öppna nedanstående URL i webbläsaren. Ersätt CLUSTERNAME med namnet på klustret:
https://CLUSTERNAME.azurehdinsight.net/jupyter
Skapa en ny anteckningsbok. Klicka på Ny och sedan på PySpark.
Du behöver inte uttryckligen skapa några kontexter eftersom du har skapat anteckningsboken med hjälp av PySpark-kerneln. Spark- och Hive-kontexterna skapas automatiskt för dig när du kör den första kodcellen. Du kan börja med att importera de typer som krävs för det här scenariot. Det gör du genom att klistra in följande kodfragment i en cell och trycka på SKIFT + RETUR.
from pyspark.sql.types import *
Varje gång du kör ett jobb i Jupyter kommer fönsterrubriken i din webbläsare att visa statusen (Upptagen) tillsammans med anteckningsbokens titel. Du kan även se en fylld cirkel bredvid PySpark-texten i det övre högra hörnet. När jobbet har slutförts ändras denna till en tom cirkel.
Läs in exempeldata i en tillfällig tabell med hjälp av den HVAC.csv fil som du kopierade till Data Lake Storage Gen1-kontot. Du kan komma åt data i Data Lake Storage-kontot med hjälp av följande URL-mönster.
Om du har Data Lake Storage Gen1 som standardlagring finns HVAC.csv på sökvägen som liknar följande URL:
adl://<data_lake_store_name>.azuredatalakestore.net/<cluster_root>/HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv
Du kan också använda ett förkortat format, till exempel följande:
adl:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv
Om du har Data Lake Storage som ytterligare lagring finns HVAC.csv på den plats där du kopierade det, till exempel:
adl://<data_lake_store_name>.azuredatalakestore.net/<path_to_file>
I en tom cell klistrar du in följande kodexempel, ersätter MYDATALAKESTORE med ditt Data Lake Storage-kontonamn och trycker på SKIFT + RETUR. Den här kodexemplet registrerar data i en tillfällig tabell som kallas hvac.
# Load the data. The path below assumes Data Lake Storage is default storage for the Spark cluster hvacText = sc.textFile("adl://MYDATALAKESTORazuredatalakestore. net/cluster/mysparkclusteHdiSamples/HdiSamples/ SensorSampleData/hvac/HVAC.csv") # Create the schema hvacSchema = StructType([StructField("date", StringTy(), False) ,StructField("time", StringType(), FalseStructField ("targettemp", IntegerType(), FalseStructField("actualtemp", IntegerType(), FalseStructField("buildingID", StringType(), False)]) # Parse the data in hvacText hvac = hvacText.map(lambda s: s.split(",")).filt(lambda s: s [0] != "Date").map(lambda s:(str(s[0]), s(s[1]), int(s[2]), int (s[3]), str(s[6]) )) # Create a data frame hvacdf = sqlContext.createDataFrame(hvac,hvacSchema) # Register the data fram as a table to run queries against hvacdf.registerTempTable("hvac")
Eftersom du använder en PySpark-kernel kan du nu direkt köra en SQL-fråga för den tillfälliga tabellen hvac som du just skapade med den användbara
%%sql
-funktionen. Mer information om magin%%sql
och andra funktioner som är tillgängliga med PySpark-kerneln finns i Kernels available on Jupyter Notebooks with Apache Spark HDInsight clusters (Kernels available on Jupyter Notebooks with Apache Spark HDInsight clusters).%%sql SELECT buildingID, (targettemp - actualtemp) AS temp_diff, date FROM hvac WHERE date = \"6/1/13\"
När jobbet har slutförts visas följande tabellutdata som standard.
Du kan också visa resultaten i andra visualiseringar. Ett områdesdiagram för samma utdata skulle som exempel se ut enligt nedan.
När du har kört appen bör du stänga ned anteckningsboken för att frigöra resurser. Du gör det genom att klicka på Stäng och stoppa i anteckningsbokens Fil-meny. Då avslutas anteckningsboken och stängs ned.
Nästa steg
- Skapa ett fristående Scala-program som ska köras i Apache Spark-kluster
- Använda HDInsight-verktyg i Azure Toolkit for IntelliJ för att skapa Apache Spark-program för HDInsight Spark Linux-kluster
- Använda HDInsight-verktyg i Azure Toolkit for Eclipse för att skapa Apache Spark-program för HDInsight Spark Linux-kluster
- Använda Azure Data Lake Storage Gen2 med Azure HDInsight-kluster
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för