HDInsight의 Apache Spark 클러스터에서 Jupyter Notebook과 함께 외부 패키지 사용
클러스터에 기본적으로 포함되지 않는 외부의 커뮤니티에서 제공하는 Apache maven 패키지를 사용하도록 HDInsight의 Apache Spark 클러스터에서 Jupyter Notebook을 구성하는 방법을 알아봅니다.
사용할 수 있는 패키지의 전체 목록은 Maven 리포지토리 를 검색할 수 있습니다. 다른 소스에서 사용 가능한 패키지 목록을 가져올 수도 있습니다. 예를 들어 커뮤니티 제공 패키지의 전체 목록은 Spark 패키지에서 사용할 수 있습니다.
이 문서에서는 Jupyter Notebook에서 spark-csv 패키지를 사용하는 방법을 알아봅니다.
필수 조건
HDInsight의 Apache Spark. 자세한 내용은 Azure HDInsight에서 Apache Spark 클러스터 만들기를 참조하세요.
HDInsight의 Spark에서 Jupyter Notebook을 사용하는 방법 이해. 자세한 내용은 HDInsight의 Apache Spark로 데이터 로드 및 쿼리 실행을 참조하세요.
클러스터 기본 스토리지에 대한 URI 체계입니다. Azure Storage의 경우
wasb://
, Azure Data Lake Storage Gen2의 경우abfs://
입니다. Azure Storage 또는 Data Lake Storage Gen2에 보안 전송을 사용하는 경우 URI는 각각wasbs://
또는abfss://
가 됩니다. 보안 전송도 참조하세요.
Jupyter Notebook에서 외부 패키지 사용
Apache Spark 클러스터의 이름인
https://CLUSTERNAME.azurehdinsight.net/jupyter
곳CLUSTERNAME
으로 이동합니다.새 Notebook을 만듭니다. 새로 만들기를 선택한 다음, Spark를 선택합니다.
새 노트북이 만들어지고 Untitled.pynb 이름으로 열립니다. 맨 위에서 Notebook 이름을 선택하고 식별 이름을 입력합니다.
%%configure
Magic을 사용하여 외부 패키지를 사용하도록 노트북을 구성합니다. 외부 패키지를 사용하는 Notebook에서%%configure
Magic을 호출해야 합니다. 이렇게 하면 커널은 세션이 시작되기 전에 패키지를 사용하도록 구성됩니다.Important
첫 번째 셀에서 커널을 구성하는 것을 잊은 경우
%%configure
과-f
매개 변수를 사용할 수 있지만 세션이 다시 시작되고 모든 진행률이 손실됩니다.HDInsight 버전 명령 HDInsight 3.5 및 HDInsight 3.6용 %%configure
{ "conf": {"spark.jars.packages": "com.databricks:spark-csv_2.11:1.5.0" }}
HDInsight 3.3 및 HDInsight 3.4용 %%configure
{ "packages":["com.databricks:spark-csv_2.10:1.4.0"] }
위의 코드 조각에는 Maven Center Repository의 외부 패키지에 대한 Maven 좌표가 필요합니다. 이 코드 조각에서
com.databricks:spark-csv_2.11:1.5.0
는 spark-csv 패키지에 대한 Maven 좌표입니다. 패키지의 좌표를 생성하는 방법은 다음과 같습니다.a. Maven Repository에서 패키지를 찾습니다. 이 문서에서는 spark-csv를 사용합니다.
b. 해당 리포지토리에서 GroupId, ArtifactId 및 Version 값을 수집합니다. 수집하는 값이 클러스터와 일치하는지 확인합니다. 이 경우에는 Scala 2.11 및 Spark 1.5.0 패키지를 사용하고 있지만, 해당 클러스터에 적합한 다른 Scala 또는 Spark 버전을 선택해야 할 수 있습니다. Spark Jupyter 커널에서 또는 Spark 제출 시
scala.util.Properties.versionString
을 실행하여 클러스터에서 Scala 버전을 찾을 수 있습니다. Jupyter Notebook에서sc.version
을 실행하여 클러스터에서의 Spark 버전을 찾을 수 있습니다.c. 콜론(:)으로 구분된 세 개의 값을 연결합니다.
com.databricks:spark-csv_2.11:1.5.0
%%configure
Magic을 사용하여 코드 셀을 실행합니다. 이렇게 하면 제공된 패키지를 사용하도록 기본 Livy 세션이 구성됩니다. 이제 아래와 같이 노트북의 다음 셀에서 패키지를 사용할 수 있습니다.val df = spark.read.format("com.databricks.spark.csv"). option("header", "true"). option("inferSchema", "true"). load("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
HDInsight 3.4 이하의 경우 다음 코드 조각을 사용해야 합니다.
val df = sqlContext.read.format("com.databricks.spark.csv"). option("header", "true"). option("inferSchema", "true"). load("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")
아래와 같이 코드 조각을 실행하여 이전 단계에서 만든 데이터 프레임의 데이터를 볼 수 있습니다.
df.show() df.select("Time").count()
참고 항목
시나리오
- BI와 Apache Spark: BI 도구와 함께 HDInsight의 Spark를 사용하여 대화형 데이터 분석 수행
- Machine Learning과 Apache Spark: HVAC 데이터를 사용하여 건물 온도를 분석하는 데 HDInsight의 Spark 사용
- Machine Learning과 Apache Spark: HDInsight의 Spark를 사용하여 식품 검사 결과 예측
- HDInsight의 Apache Spark를 사용한 웹 사이트 로그 분석
애플리케이션 만들기 및 실행
도구 및 확장
- HDInsight Linux의 Apache Spark 클러스터에서 Jupyter Notebook과 함께 외부 Python 패키지 사용
- IntelliJ IDEA용 HDInsight 도구 플러그 인을 사용하여 Spark Scala 애플리케이션 만들기 및 제출
- IntelliJ IDEA용 HDInsight 도구 플러그 인을 사용하여 Apache Spark 애플리케이션을 원격으로 디버그
- HDInsight에서 Apache Spark 클러스터와 함께 Apache Zeppelin Notebook 사용
- HDInsight의 Apache Spark 클러스터에서 Jupyter Notebook에 사용할 수 있는 커널
- 컴퓨터에 Jupyter를 설치하고 HDInsight Spark 클러스터에 연결