

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

# Akses shell Spark
<a name="emr-spark-shell"></a>

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](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) di *Amazon EMR Management Guide*. Contoh berikut menggunakan Apache HTTP Server akses log disimpan di Amazon S3.

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

 Secara default, shell Spark membuat [SparkContext](https://spark.apache.org/docs/latest/api/scala/org/apache/spark/SparkContext.html)objeknya sendiri yang disebut`sc`. Anda dapat menggunakan konteks ini jika diperlukan dalam REPL. sqlContextjuga tersedia di cangkang dan itu adalah a [HiveContext](https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.hive.HiveContext). 

**Example 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.rproxy.govskope.ca-2009-04-13-08-05.log")
```
Spark menciptakan textFile dan terkait [Struktur data](https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds). 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
```

**Example Gunakan shell Python-based Spark untuk menghitung kemunculan string dalam file yang disimpan di Amazon S3**  
Spark juga menyertakan Python-based shell,`pyspark`, yang dapat Anda gunakan untuk membuat prototipe program Spark yang ditulis dengan Python. Sama seperti`spark-shell`, panggil `pyspark` pada simpul utama; itu juga memiliki [SparkContext](https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.SparkContext.html#pyspark.SparkContext)objek 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.rproxy.govskope.ca-2009-04-13-08-05.log")
```
Spark menciptakan textFile dan terkait [Struktur data](https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds). 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
```