تشغيل Apache Spark من Spark Shell

يوفر Apache Spark Shell التفاعلي بيئة REPL (حلقة قراءة وتنفيذ الطباعة) لتشغيل أوامر Spark كل على حدة ورؤية النتائج. تُعد هذه العملية مفيدة للتطوير وتصحيح الأخطاء. توفر Spark أمر shell واحد لكل لغة من لغاتها المدعومة: Scala، وPython، وR.

تشغيل Apache Spark Shell

  1. استخدم الأمر ssh للاتصال بنظام المجموعة الخاص بك. قم بتحرير الأمر أدناه عن طريق استبدال اسم نظام المجموعة باسم نظام مجموعتك ثم إدخال الأمر:

    ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
    
  2. توفر Spark أوامر shell للغة Scala (spark-shell)، وPython (pyspark). في جلسة SSH، أدخل أحد هذه الأوامر:

    spark-shell
    
    # Optional configurations
    # spark-shell --num-executors 4 --executor-memory 4g --executor-cores 2 --driver-memory 8g --driver-cores 4
    
    pyspark
    
    # Optional configurations
    # pyspark --num-executors 4 --executor-memory 4g --executor-cores 2 --driver-memory 8g --driver-cores 4
    

    إذا كنت تنوي استخدام أي تكوين اختياري، تأكد أولاً من مراجعة استثناء OutOfMemoryError لـ Apache Spark.

  3. بعض أمثلة الأوامر الأساسية. اختر اللغة ذات الصلة:

    val textFile = spark.read.textFile("/example/data/fruits.txt")
    textFile.first()
    textFile.filter(line => line.contains("apple")).show()
    
    textFile = spark.read.text("/example/data/fruits.txt")
    textFile.first()
    textFile.filter(textFile.value.contains("apple")).show()
    
  4. استعلام ملف CSV. لاحظ أن اللغة أدناه تعمل لـ spark-shell وpyspark.

    spark.read.csv("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv").show()
    
  5. استعلام ملف CSV ونتائج المخزن في المتغير:

    var data = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv")
    
    data = spark.read.format("csv").option("header", "true").option("inferSchema", "true").load("/HdiSamples/HdiSamples/SensorSampleData/building/building.csv")
    
  6. عرض النتائج:

    data.show()
    data.select($"BuildingID", $"Country").show(10)
    
    data.show()
    data.select("BuildingID", "Country").show(10)
    
  7. خروج

    :q
    
    exit()
    

مثيلات SparkSession وSparkContext

بشكل افتراضي عند تشغيل Spark Shell، يتم إنشاء مثيلات SparkSession وSparkContext تلقائيا لك.

للوصول إلى مثيل SparkSession، أدخل spark. للوصول إلى مثيل SparkContext، أدخل sc.

معلمات shell المهمة

يدعم الأمر Spark Shell (spark-shell أو pyspark) العديد من معلمات سطر الأوامر. للاطلاع على قائمة كاملة من المعلمات، ابدأ Spark Shell بالتبديل --help. قد تنطبق بعض هذه المعلمات فقط على spark-submit، التي يتم تضمينها في Spark Shell.

التبديل الوصف مثال
--master MASTER_URL يحدد عنوان URL الرئيسي. في HDInsight، تكون هذه القيمة هي yarn دائماً. --master yarn
--jars JAR_LIST قائمة مفصولة بفاصلة لملفات jars المحلية لتضمينها على برامج التشغيل وclasspaths المنفذة. في HDInsight، تتكون هذه القائمة من مسارات إلى نظام الملفات الافتراضي في تخزين Azure أو Data Lake Storage. --jars /path/to/examples.jar
--packages MAVEN_COORDS قائمة مفصولة بفاصلة من إحداثيات maven للجرار لـ jars لتضمينها على برامج التشغيل وclasspaths المنفذة. والبحث في مستودع maven المحلي، ثم مستودع maven المركزي، ثم أي مستودعات بعيدة إضافية محددة بـ --repositories. تنسيق الإحداثيات هو groupId:artifactId:version. --packages "com.microsoft.azure:azure-eventhubs:0.14.0"
--py-files LIST بالنسبة إلى Python فقط، قائمة مفصولة بفواصل من .zipأو .eggأو .py ملفات لوضعها على PYTHONPATH. --pyfiles "samples.py"

الخطوات التالية