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

Spark shell didasarkan pada Scala REPL (Baca-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 master dengan SSH dan memohon spark-shell. Untuk informasi selengkapnya tentang menghubungkan ke node master, lihat. Connect ke node master menggunakan SSH di Amazon EMR. Contoh berikut menggunakan Apache HTTP Server akses log disimpan di Amazon S3.

catatan

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

Secara default, shell Spark menciptakan sendiri SparkContextobjek yang disebutsc. Anda dapat menggunakan konteks ini jika diperlukan dalam REPL. SQLContext juga tersedia dalam shell dan itu adalah HiveContext.

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

Contoh ini menggunakan sc untuk membaca textFile 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 Python berbasis Spark shell untuk menghitung kejadian 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 seperti denganspark-shell, memohonpyspark pada node master; 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