초보자를 위한 PySpark 자습서 [예제 포함]
게시 됨: 2020-10-07PySpark는 서비스 아키텍처로 작동하는 클라우드 기반 플랫폼입니다. 플랫폼은 빅데이터 파일을 연산할 수 있는 환경을 제공합니다. PySpark는 Spark 클러스터와 관련된 Python 프로그래밍 언어의 응용 프로그램을 나타냅니다. 빅 데이터와 깊은 관련이 있습니다. 먼저 Big Data가 다루는 내용을 간략하게 알려주고 PySpark 자습서 의 개요를 얻으십시오 .
목차
PySpark는 무엇에 사용됩니까?
Apache Spark 커뮤니티에서 출시한 Python API for Spark로 Python with Spark를 지원합니다. 사용에 대해 자세히 알아보려면 스파크 자습서 Python 에 대한 이 기사를 계속 읽으십시오 .
- PySpark를 사용하면 Python의 RDD(Resilient Distributed Datasets)와 효율적으로 통합하고 작업할 수 있습니다.
- 수많은 기능으로 인해 PySpark는 방대한 데이터 세트 작업을 용이하게 하는 우수한 프레임워크입니다.
- PySpark는 광범위한 라이브러리를 제공하며 PySpark의 도움으로 기계 학습 및 실시간 스트리밍 분석이 더 쉬워집니다.
- PySpark는 Python의 단순성과 빅 데이터 길들이기에 사용되는 Apache Spark의 기능을 활용합니다.
- 빅데이터의 등장으로 Apache Spark, Hadoop과 같은 기술의 힘이 발전했습니다.
- 데이터 과학자는 대규모 데이터 세트를 효율적으로 처리할 수 있으며 모든 Python 개발자가 접근할 수 있습니다.
읽기: Apache PySpark의 데이터 프레임
Python의 빅 데이터 개념
Python은 객체 지향 프로그래밍(OOP), 비동기 및 기능 프로그래밍과 같은 많은 프로그래밍 패러다임을 노출하는 고급 프로그래밍 언어입니다.
함수형 프로그래밍은 빅 데이터를 다룰 때 중요한 패러다임입니다. 병렬 코드를 따르므로 여러 CPU와 완전히 다른 시스템에서 코드를 실행할 수 있습니다. PySpark 생태계에는 기능 코드를 사용하고 컴퓨터 클러스터에 배포할 수 있는 기능이 있습니다.
프로그래머를 위한 함수형 프로그래밍 핵심 아이디어는 Python의 표준 라이브러리와 내장에서 사용할 수 있습니다.
외부 상태 유지 관리 없이 함수를 통해 발생하는 데이터 조작은 함수형 프로그래밍의 핵심 아이디어 구현입니다. 이것은 코드가 전역 변수를 우회하고 데이터를 제자리에서 조작하지 않지만 항상 새 데이터를 반환한다는 사실을 나타냅니다. Python은 람다 키워드를 사용하여 익명 함수를 노출합니다.
세계 최고의 대학에서 데이터 과학 인증 과정 을 알아보십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.
PySpark의 몇 가지 주요 기능
- Polyglot: PySpark는 방대한 데이터 세트를 통한 계산을 위한 가장 눈에 띄는 프레임워크 중 하나입니다. 여러 언어와도 호환됩니다.
- 디스크 지속성 및 캐싱: PySpark 프레임워크는 인상적인 디스크 지속성과 강력한 캐싱을 제공합니다.
- 빠른 처리: 빅 데이터 처리에 사용되는 다른 기존 프레임워크와 비교할 때 PySpark 프레임워크는 매우 빠릅니다.
- RDD와 잘 작동: Python은 프로그래밍 언어에 대해 동적으로 유형이 지정되어 탄력적인 분산 데이터 세트와 함께 작동하는 데 도움이 됩니다.
파이스파크란?
이 Pyspark 튜토리얼 을 통해 PySpark가 무엇인지 이해할 수 있습니다. PySpark는 Python API(응용 프로그래밍 인터페이스)입니다. API는 Apache Spark와의 연결을 형성하기 위해 Python으로 작성되었습니다. 아시다시피 Apache Spark는 빅 데이터 분석을 다룹니다. 프로그래밍 언어 Scala는 Apache Spark를 만드는 데 사용됩니다. Python, Java, SQL, R 및 Scala 자체와 같은 다른 프로그래밍 언어와 통합할 수 있습니다.
PySpark는 두 가지 확증 세트를 기반으로 합니다.
- PySpark API: 샘플이 많습니다.
- Spark Scala API: PySpark 프로그램의 경우 매우 읽기 쉽고 작업 기반 프로그래밍 언어인 Scala 코드를 Python 코드로 변환하고 이해할 수 있도록 합니다.
Py4J는 Python 프로그램이 JVM 기반 코드를 통해 통신할 수 있는 자유를 제공합니다. PySpark가 Spark Scala 기반 응용 프로그래밍 인터페이스에 연결하는 데 도움이 됩니다.
PySpark 환경을 설정하는 방법
이제 PySpark가 시작되고 적용되는 다양한 환경에 대해 논의해 보겠습니다. 이 스파크 튜토리얼 Python 을 따라 PySpark를 설정하십시오.
- 자체 호스팅: 이 경우 컬렉션을 설정하거나 직접 덩어리를 만들 수 있습니다. 이 환경에서는 금속 또는 가상 클러스터를 사용할 수 있습니다. 이 목적에 적용할 수 있는 몇 가지 제안된 프로젝트, 즉 Apache Ambari가 있습니다. 그러나 이 프로세스는 충분히 빠르지 않습니다.
- 클라우드 제공자: 이 경우 Spark 클러스터가 사용되는 경우가 많습니다. 이 환경은 자체 호스팅보다 더 빠르게 제공됩니다. Amazon Web Services(AWS)에는 EMR(Electronic MapReduce)이 있고 GCP(Good Clinical Practice)에는 Dataproc이 있습니다.
- 공급업체 솔루션: Databricks와 Cloudera는 Spark 솔루션을 제공합니다. PySpark를 실행하는 가장 빠른 방법 중 하나입니다.
파이스파크 프로그래밍
우리 모두 알다시피 Python은 여러 라이브러리가 있는 고급 언어입니다. 기계 학습 및 데이터 분석에서 매우 중요한 역할을 합니다. 따라서 PySpark는 Python으로 작성된 스파크용 API입니다. Spark는 빠른 속도와 쉬운 액세스를 특징으로 하는 몇 가지 우수한 속성을 가지고 있으며 스트리밍 분석에 적용됩니다. 이 외에도 Spark 및 Python의 프레임워크는 PySpark가 빅 데이터에 쉽게 액세스하고 처리할 수 있도록 도와줍니다.
스파크 튜토리얼 Python 의 필수 사항은 다음에서 설명합니다.
탄력적 분산 데이터 세트(RDD): 탄력적 분산 데이터 세트 또는 RDD는 PySpark 프로그래밍 아키텍처의 주요 구성 요소 중 하나입니다. 이 컬렉션은 변경할 수 없으며 약한 변형을 거칩니다. 이 약어의 각 단어에는 의미가 있습니다. 실수를 허용하고 데이터를 재발견할 수 있기 때문에 탄력적입니다. 덩어리에서 다양한 다른 노드로 확장되기 때문에 분산됩니다. Dataset은 값 데이터의 저장을 의미합니다.
또한 읽기: 가장 일반적인 PySpark 인터뷰 질문

RDD는 주로 다음 유형의 작업을 지원합니다.
1) 변환: 지연 평가 원칙에 따른 변환을 사용하면 언제든지 데이터에 대한 작업을 호출하여 실행을 실행할 수 있습니다. 변환 중 일부는 맵, 플랫 맵, 필터, 구별, 키별 축소, 맵 파티션이며, RDD에서 제공하는 정렬 기준입니다.
2) 작업: RDD 작업을 통해 PySpark는 계산을 적용하고 결과를 작업이라고 하는 드라이버에 다시 전달합니다.
대문자를 소문자로 변환하고 문자열을 분할하는 단계

split 함수의 출력은 목록 유형입니다. 조인 기능을 사용하려면 형식은 ".join(시퀀스 데이터 유형)"입니다. 위의 코드에서:
입력: 문자열 분할 및 결합
출력: 문자열 분할 및 결합
파일을 읽는 방법?
"읽기 모드"(r)에서 .txt 파일을 호출하여 Python에서 파일을 읽습니다.
1단계) 읽기 모드에서 파일 열기
f=open("샘플.txt", "r")
2단계) 코드에서 모드 기능을 사용하여 파일이 열린 모드인지 확인합니다.
f.모드 == 'r':
3단계) f.read를 사용하여 파일 데이터를 읽고 변수 내용에 저장
내용 = f.read()
예측 분석의 단계:
- 데이터 탐색: 데이터를 수집하고 업로드하고 데이터 유형, 종류 및 값을 파악해야 합니다.
- 데이터 정리: 프로그램을 방해할 수 있는 null 값, 누락된 값 및 기타 중복을 찾아야 합니다.
- 모델링: 예측 모델을 선택해야 합니다.
- 평가: 분석의 정확성을 확인해야 합니다.
파이스파크 스트리밍
PySpark 스트리밍은 확장 가능하고 오류가 없는 시스템입니다. 500ms에서 더 높은 간격 슬롯에 이르는 RDD 배치 간격을 따릅니다. 스파크 튜토리얼 Python 에 따르면 Spark Streaming에는 스트리밍 데이터가 입력으로 제공됩니다.
RDD 배치 간격의 수에 따라 이러한 스트리밍 데이터는 여러 배치로 나누어 스파크 엔진으로 전송됩니다. 스트리밍된 데이터를 수신하는 소스 중 일부는 Kinesis, Kafka, Apache Flume 등입니다. 데이터 구조 및 알고리즘을 사용하여 Spark 엔진은 데이터를 검색할 수 있습니다. 그 후, 검색된 데이터는 다양한 파일 시스템 및 데이터베이스로 전달됩니다.
앞서 언급했듯이 PySpark는 높은 수준의 API입니다. 어떤 장애가 발생하더라도 스트리밍 작업은 한 번만 실행됩니다. PySpark 스트리밍의 주요 방해 요소 중 하나는 이산화된 스트림입니다. 이러한 스트림 구성 요소도 RDD 배치의 도움으로 구축됩니다. MLib, SQL, Dataframes는 Spark Streaming의 광범위한 작업을 확장하는 데 사용됩니다.
이 PySpark Tutorial 에서는 Spark Stream이 다양한 소스에서 많은 데이터를 검색한다는 것을 알게 됩니다. 이것은 Map, Reduce, Join 및 Window와 같은 고기능 구성 요소를 포함하는 복잡한 알고리즘을 사용하기 때문에 가능합니다.
이것이 PySpark 스트리밍이 무엇인지 요약한 것입니다. 이제 이 Spark 자습서 python 에서 PySpark의 몇 가지 장점에 대해 이야기해 보겠습니다.
파이스파크의 장점
이 부분은 두 부분으로 나눌 수 있습니다. 우선, PySpark에서 Python을 사용할 때의 장점과 두 번째로 PySpark 자체의 장점을 알게 될 것입니다.
- 높은 수준의 코더 친화적인 언어이기 때문에 배우고 실행하기 쉽습니다.
- 간단하고 포괄적인 API를 사용할 수 있습니다.
- Python은 독자에게 데이터를 시각화할 수 있는 훌륭한 기회를 제공합니다.
- 파이썬에는 광범위한 라이브러리가 있습니다. 예를 들면 Matplotlib, Pandas, Seaborn, NumPy 등이 있습니다.
이제 다음은 PySpark Tutorial 의 기능입니다 .
- PySpark Streaming은 Java, Scala 및 R과 같은 다른 프로그래밍 언어를 쉽게 통합합니다.
- PySpark는 프로그래머가 RDD(Resilient Distributed Datasets)를 사용하여 여러 기능을 수행할 수 있도록 지원합니다.
- PySpark는 데이터 처리를 위한 고속의 강력한 포착 및 디스크 영구 메커니즘으로 인해 다른 빅 데이터 솔루션보다 선호됩니다.
필독: 초보자를 위한 Python 튜토리얼
PySpark에 데이터 과학 및 기계 학습 포함
고기능 프로그래밍 언어인 Python은 데이터 과학 및 기계 학습의 중추입니다. 따라서 데이터 과학과 ML이 PySpark 시스템의 필수적인 부분이라는 것은 놀라운 일이 아닙니다. 기계 학습 라이브러리(MLib)는 PySpark에서 기계 학습의 기능을 제어하는 연산자입니다.
다음은 PySpark에서 기계 학습을 사용할 때의 이점입니다.
- 확장성이 뛰어납니다.
- 분산 시스템에서 계속 작동합니다.
PySpark에서 기계 학습의 주요 기능:
- 머신 러닝은 데이터의 적절한 처리를 위한 다양한 방법과 기술을 준비합니다. 변환, 추출, 해싱, 선택 등이 있습니다.
- 앞에서 언급한 것처럼 몇 가지 복잡한 알고리즘을 제공합니다. 이들은 다양한 소스의 데이터를 처리하는 데 사용됩니다.
- 그것은 일부 수학적 해석과 통계 데이터를 사용합니다. 여기에는 선형 대수 및 모델 평가 프로세스가 포함됩니다.
결론
이 자습서에서는 주요 기능, 환경 설정, 파일 읽기 등을 논의했습니다.
데이터 과학에 대해 자세히 알아보려면 작업 전문가를 위해 만들어졌으며 10개 이상의 사례 연구 및 프로젝트, 실용적인 실습 워크샵, 업계 전문가와의 멘토링, 1 - 업계 멘토와 일대일, 400시간 이상의 학습 및 최고의 기업과의 취업 지원.
파이스파크란?
PySpark는 Apache Spark와 Python의 협업을 촉진하기 위해 설립되었습니다. 이 협업은 Spark용 Python API를 제공합니다. 또한 PySpark를 사용하면 사용자가 Apache Spark 및 Python에서 RDD(복원력 분산 데이터 세트)와 상호 작용할 수 있습니다. PySpark를 사용하면 Python 프로그래밍 언어로 RDD를 빠르게 통합하고 상호 작용할 수 있습니다. PySpark를 대규모 데이터 세트 작업에 탁월한 도구로 만드는 몇 가지 특성이 있습니다. 데이터 엔지니어는 거대한 데이터 세트에 대한 계산을 수행하거나 단순히 연구하기 위해 이 도구를 사용하고 있습니다. 이것은 Py4j 라이브러리를 사용하여 수행됩니다.
PySpark의 실제 사용 사례는 무엇입니까?
PySpark는 현재 스트리밍 ETL에 사용됩니다. 스트리밍 ETL은 데이터가 데이터 저장소로 전달되기 전에 데이터를 지속적으로 정리하고 집계합니다. PySpark는 정적 데이터와 통합하여 라이브 데이터를 풍부하게 함으로써 데이터 강화를 지원하므로 기업이 보다 포괄적인 실시간 데이터 분석을 수행할 수 있습니다. Pyspark는 트리거 감지에도 사용됩니다. 트리거는 금융 기관에서 사기 거래를 감지하고 추적을 중단하는 데 사용됩니다. 트리거는 또한 병원에서 잠재적으로 해로운 건강 변화를 식별하는 동시에 환자의 활력 징후를 모니터링하고 관련 간병인에게 자동 알림을 전달하여 신속하고 필요한 조치를 취하는 데 사용됩니다.
Python과 PySpark는 관련이 있습니까?
PySpark는 Apache Spark와 Python 파트너십의 결과입니다. Python은 범용 고급 프로그래밍 언어인 반면 Apache Spark는 속도, 사용 편의성 및 스트리밍 분석에 중점을 둔 오픈 소스 클러스터 컴퓨팅 플랫폼입니다. 다양한 라이브러리 세트를 제공하며 주로 Machine Learning 및 Real-Time Streaming Analytics에 사용됩니다. 이는 Python의 단순성과 Apache Spark의 기능을 결합하여 빅 데이터를 길들일 수 있는 Spark용 Python API라는 의미입니다.
