

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Zugriff auf die Spark-Shell
<a name="emr-spark-shell"></a>

Die Spark-Shell basiert auf dem Scala REPL (Read-Eval-Print-Loop). Damit können Sie Spark-Programme interaktiv erstellen und Arbeit an das Framework senden. Sie können auf die Spark-Shell zugreifen, indem Sie eine Verbindung mit dem Primärknoten über SSH herstellen und `spark-shell` aufrufen. Weitere Informationen zum Herstellen einer Verbindung mit dem Primärknoten finden Sie unter [Verbinden mit dem Primärknoten über SSH](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-connect-master-node-ssh.html) im *Verwaltungshandbuch für Amazon EMR*. In den folgenden Beispielen werden Apache-HTTP-Serverzugriffsprotokolle in Amazon S3 verwendet.

**Anmerkung**  
Der Bucket in diesen Beispielen ist für Clients mit Zugriff auf USA Ost (Nord-Virginia) verfügbar.

 Standardmäßig erstellt die Spark-Shell ihr eigenes [SparkContext](https://spark.apache.org/docs/latest/api/scala/org/apache/spark/SparkContext.html)Objekt namens`sc`. Sie können diesen Kontext verwenden, wenn er in der REPL erforderlich ist. sqlContextist auch in der Shell verfügbar und es ist ein [HiveContext](https://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.hive.HiveContext). 

**Example Verwenden Sie die Spark-Shell, um die Vorkommen einer Zeichenkette in einer in Amazon S3 gespeicherten Datei zu zählen**  
Dieses Beispiel verwendet `sc` zum Lesen einer Textdatei in 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.goskope.com-2009-04-13-08-05.log")
```
Spark erstellt die Datei „textFile“ und die zugehörige [-Datenstruktur](https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds). Im Beispiel wird dann die Anzahl der Zeilen in der Protokolldatei mit der Zeichenfolge "cartoonnetwork.com" gezählt:  

```
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 Verwenden Sie die Python-based Spark-Shell, um das Vorkommen einer Zeichenfolge in einer in Amazon S3 gespeicherten Datei zu zählen**  
Spark enthält auch eine Python-based Shell`pyspark`, mit der Sie Prototypen von in Python geschriebenen Spark-Programmen erstellen können. Genau wie bei`spark-shell`, `pyspark` auf dem primären Knoten aufrufen; es hat auch dasselbe [SparkContext](https://spark.apache.org/docs/latest/api/python/reference/api/pyspark.SparkContext.html#pyspark.SparkContext)Objekt.   

```
>>> 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.goskope.com-2009-04-13-08-05.log")
```
Spark erstellt die Datei „textFile“ und die zugehörige [-Datenstruktur](https://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds). Im Beispiel wird dann die Anzahl der Zeilen in der Protokolldatei mit der Zeichenfolge "cartoonnetwork.com" gezählt.  

```
>>> 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
```