Öğretici: Azure HDInsight içindeki bir Apache Spark kümesinde veri yükleme ve sorgular çalıştırma

Bu öğreticide, bir CSV dosyasından bir veri çerçevesi oluşturmayı ve etkileşimli Spark SQL sorgularını Azure HDInsight 'ta bir Apache Spark kümesinde çalıştırmayı öğreneceksiniz. Spark’ta dataframe, adlandırılmış sütunlar halinde düzenlenmiş, dağıtılmış bir veri koleksiyonudur. Dataframe kavramsal olarak, ilişkisel bir veritabanındaki tabloya veya R/Python’daki veri çerçevesine eşdeğerdir.

Bu öğreticide şunların nasıl yapıldığını öğreneceksiniz:

  • Bir csv dosyasından dataframe oluşturma
  • Dataframe üzerinde sorgular çalıştırma

Önkoşullar

HDInsight üzerinde bir Apache Spark kümesi. Bkz. Apache Spark kümesi oluşturma.

Jupyter Notebook oluşturma

Jupyter Notebook, çeşitli programlama dillerini destekleyen etkileşimli bir not defteri ortamıdır. Not defteri, verilerle etkileşim kurmanıza, kodu markdown metniyle birleştirmenize ve basit görselleştirmeler gerçekleştirmenize olanak sağlar.

  1. https://SPARKCLUSTER.azurehdinsight.net/jupyterSpark kümenizin adıyla değiştirerek URL 'yi düzenleyin SPARKCLUSTER . Ardından, düzenlenen URL 'YI bir Web tarayıcısına girin. İstendiğinde, küme için küme oturum açma kimlik bilgilerini girin.

  2. Jupyter Web sayfasından Yeni > pyspark ' ı seçerek bir not defteri oluşturun.

    Etkileşimli Spark SQL sorgusu çalıştırmak için Jupyter Notebook oluşturma

    Yeni bir not defteri oluşturulur ve başlıksız () adıyla açılır Untitled.ipynb .

    Not

    PySpark çekirdeği kullanılarak not defteri oluşturmak için, ilk kod hücresini çalıştırdığınızda sizin için otomatik olarak spark oturumu oluşturulur. Belirtik şekilde bir oturum oluşturmanız gerekmez.

Bir csv dosyasından dataframe oluşturma

Uygulamalar, Azure depolama veya Azure Data Lake Storage gibi uzak depolamada bulunan dosyalardan veya klasörlerden doğrudan veri çerçeveleri oluşturabilir. Hive tablosundan; ya da Spark tarafından desteklenen Cosmos DB, Azure SQL DB, DW gibi diğer veri kaynaklarından. Aşağıdaki ekran görüntüsünde, bu öğreticide kullanılan HVAC.csv dosyasının bir anlık görüntü gösterilmektedir. Csv dosyası, tüm HDInsight Spark kümeleriyle birlikte gelir. Veriler, bazı binaların sıcaklık varyasyonlarını yakalar.

Etkileşimli Spark SQL sorgusu için veri anlık görüntüsü

  1. Aşağıdaki kodu Jupyter Notebook boş bir hücresine yapıştırın ve sonra kodu çalıştırmak için SHIFT + enter tuşlarına basın. Kod, bu senaryo için gerekli olan türleri içeri aktarır:

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

    Jupyter’de etkileşimli bir sorgu çalıştırılırken web tarayıcısı penceresinde veya sekme açıklamalı alt yazısında not defteri başlığıyla birlikte (Meşgul) durumu gösterilir. Ayrıca sağ üst köşedeki PySpark metninin yanında içi dolu bir daire görürsünüz. İş tamamlandıktan sonra bu simge boş bir daireye dönüşür.

    Etkileşimli Spark SQL sorgusunun durumu

  2. Döndürülen oturum kimliği ' ni aklınızda yapın. Yukarıdaki resimden oturum kimliği 0 ' dır. İsterseniz, burada CLUSTERNAME adlı konuma giderek oturum ayrıntılarını alabilirsiniz; https://CLUSTERNAME.azurehdinsight.net/livy/sessions/ID/statements burada clustername, Spark Kümenizin adı, kimlik ise oturum kimliği numarasıdır.

  3. Aşağıdaki kodu çalıştırarak bir dataframe ve geçici bir tablo (hvac) oluşturun.

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

Dataframe üzerinde sorgular çalıştırma

Tablo oluşturulduktan sonra veriler üzerinde etkileşimli bir sorgu çalıştırabilirsiniz.

  1. Not defterinin boş bir hücresinde aşağıdaki kodu çalıştırın:

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

    Aşağıdaki tablo çıktısı görüntülenir.

    Etkileşimli Spark Sorgu sonucunun tablo çıktısı

  2. Sonuçları diğer görselleştirmelerde de görebilirsiniz. Aynı çıktı için bir alan grafiği görmek için Alan’ı seçin ve sonra gösterildiği gibi diğer değerleri ayarlayın.

    Etkileşimli Spark Sorgu sonucunun alan grafiği

  3. Not defteri menü çubuğundan Dosya > kaydetme ve denetim noktası' na gidin.

  4. Sonraki öğreticiyi şimdi başlatıyorsanız, not defterini açık bırakın. Aksi takdirde, küme kaynaklarını serbest bırakmak için Not defterini kapatın: Not defteri menü çubuğundan Dosya > Kapat ve Durdur' a gidin.

Kaynakları temizleme

HDInsight ile, veri ve jupi Not defterleriniz Azure Storage 'da veya Azure Data Lake Storage depolanır, bu sayede bir kümeyi kullanımda olmadığında güvenle silebilirsiniz. Ayrıca, kullanımda olmadığı halde bir HDInsight kümesi için de ücretlendirilirsiniz. Kümenin ücretleri depolama ücretinden çok daha fazla olduğundan, kullanımda olmadıkları zaman kümeleri silmek ekonomik bir anlam sağlar. Sonraki öğretici üzerinde hemen çalışmayı planlıyorsanız, kümeyi tutmak isteyebilirsiniz.

Azure portalında kümeyi açıp Sil’i seçin.

HDInsight kümesini Sil

Kaynak grubu adını seçerek de kaynak grubu sayfasını açabilir ve sonra Kaynak grubunu sil’i seçebilirsiniz. Kaynak grubunu silerek hem HDInsight Spark kümesini hem de varsayılan depolama hesabını silersiniz.

Sonraki adımlar

Bu öğreticide, bir CSV dosyasından bir veri çerçevesi oluşturmayı ve etkileşimli Spark SQL sorgularını Azure HDInsight 'ta bir Apache Spark kümesine karşı çalıştırmayı öğrendiniz. Apache Spark ' de kaydettiğiniz verilerin Power BI gibi bir bı Analytics aracına nasıl çekkullanılabileceğini görmek için sonraki makaleye ilerleyin.