Spark 쉘에 액세스 - 아마존 EMR

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Spark 쉘에 액세스

Spark 쉘은 Scala REPL (Read-Eval-Print-Loop)을 기반으로 합니다. Scala REPL을 사용하면 Spark 프로그램을 대화식으로 생성하고 작업을 프레임워크로 제출할 수 있습니다. 를 사용하여 기본 노드에 SSH 연결하고 spark-shell 호출하여 Spark 셸에 액세스할 수 있습니다. 기본 노드에 연결하는 방법에 대한 자세한 내용은 Amazon EMR Management Guide를 사용하여 SSH 기본 노드에 연결을 참조하십시오. 다음 예시에서는 Amazon S3에 저장된 Apache HTTP 서버 액세스 로그를 사용합니다.

참고

이러한 예제의 Amazon 버킷은 미국 동부(버지니아 북부)에 액세스할 수 있는 클라이언트에서 사용 가능합니다.

기본적으로 Spark 셸은 이라는 자체 SparkContext객체를 생성합니다. sc 내에서 필요한 경우 이 컨텍스트를 사용할 수 있습니다. REPL sqlContext셸에서도 사용할 수 있으며 이는 a입니다 HiveContext.

예 Spark 쉘을 사용하여 Amazon S3에 저장된 파일에서 특정 문자열의 발생 개수 계산

이 예제에서는 sc를 사용하여 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는 textFile 및 관련 데이터 구조를 생성합니다. 그 다음, 이 예제는 로그 파일에서 "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
예 Python 기반 Spark 쉘을 사용하여 Amazon S3에 저장된 파일에서 특정 문자열의 발생 개수 계산

Spark에는 Python 기반 셸인 pyspark도 포함되어 있으며, 이 셸을 사용하여 Python에서 작성된 Spark 프로그램을 시제품화할 수 있습니다. 와 spark-shell 마찬가지로 기본 노드에서도 pyspark 호출할 수 있습니다. 기본 노드에도 동일한 SparkContext객체가 있습니다.

>>> 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는 textFile 및 관련 데이터 구조를 생성합니다. 그 다음, 이 예제는 로그 파일에서 "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