Akses shell Spark - Amazon EMR

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Akses shell Spark

Cangkang Spark didasarkan pada. Scala REPL (Read-Eval-Print-Loop) Hal ini memungkinkan Anda untuk membuat program Spark secara interaktif dan menyerahkan pekerjaan ke kerangka kerja. Anda dapat mengakses shell Spark dengan menghubungkan ke node utama dengan SSH dan memanggil. spark-shell Untuk informasi selengkapnya tentang menghubungkan ke node utama, lihat Connect ke node primer menggunakan SSH di Amazon EMR Management Guide. Contoh berikut menggunakan Apache HTTP Server akses log disimpan di Amazon S3.

catatan

Bucket dalam contoh-contoh ini tersedia untuk klien yang dapat mengakses US East (Virginia N.).

Secara default, shell Spark membuat SparkContextobjeknya sendiri yang disebutsc. Anda dapat menggunakan konteks ini jika diperlukan dalam REPL. sqlContextjuga tersedia di cangkang dan itu adalah a HiveContext.

contoh Gunakan shell Spark untuk menghitung kemunculan string dalam file yang disimpan di Amazon S3

Contoh ini digunakan sc untuk membaca file teks yang disimpan di Amazon S3.

scala> sc res0: org.apache.spark.SparkContext = org.apache.spark.SparkContext@404721db scala> val textFile = sc.textFile("s3://elasticmapreduce/samples/hive-ads/tables/impressions/dt=2009-04-13-08-05/ec2-0-51-75-39.amazon.com-2009-04-13-08-05.log")

Spark menciptakan textFile dan terkait Struktur data. Selanjutnya, contoh menghitung jumlah baris dalam file log dengan string “cartoonnetwork.com”:

scala> val linesWithCartoonNetwork = textFile.filter(line => line.contains("cartoonnetwork.com")).count() linesWithCartoonNetwork: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[2] at filter at <console>:23 <snip> <Spark program runs> scala> linesWithCartoonNetwork res2: Long = 9
contoh Gunakan shell Spark berbasis Python untuk menghitung kemunculan string dalam file yang disimpan di Amazon S3

Spark juga termasuk shell berbasis Python, pyspark, yang dapat Anda gunakan untuk prototipe program Spark ditulis dengan Python. Sama sepertispark-shell, panggil pyspark pada simpul utama; itu juga memiliki SparkContextobjek yang sama.

>>> sc <pyspark.context.SparkContext object at 0x7fe7e659fa50> >>> textfile = sc.textFile("s3://elasticmapreduce/samples/hive-ads/tables/impressions/dt=2009-04-13-08-05/ec2-0-51-75-39.amazon.com-2009-04-13-08-05.log")

Spark menciptakan textFile dan terkait Struktur data. Selanjutnya, contoh menghitung jumlah baris dalam file log dengan string “cartoonnetwork.com”.

>>> linesWithCartoonNetwork = textfile.filter(lambda line: "cartoonnetwork.com" in line).count() 15/06/04 17:12:22 INFO lzo.GPLNativeCodeLoader: Loaded native gpl library from the embedded binaries 15/06/04 17:12:22 INFO lzo.LzoCodec: Successfully loaded & initialized native-lzo library [hadoop-lzo rev EXAMPLE] 15/06/04 17:12:23 INFO fs.EmrFileSystem: Consistency disabled, using com.amazon.ws.emr.hadoop.fs.s3n.S3NativeFileSystem as filesystem implementation <snip> <Spark program continues> >>> linesWithCartoonNetwork 9