PySpark 데이터 프레임 자습서 – 데이터 프레임을 사용한 PySpark 프로그래밍



이 PySpark Dataframe 자습서 블로그에서는 여러 예제를 통해 Apache Spark의 변환 및 작업에 대해 알아 봅니다.

데이터 프레임은 오늘날 업계에서 유행어입니다. 사람들은 Python, Scala 및 R과 같은 데이터 분석에 사용되는 널리 사용되는 언어와 함께 사용하는 경향이 있습니다.또한 빅 데이터, Python for Spark 또는 오늘날 업계에서 가장 인기있는 기술 중 하나가되었습니다.그렇다면 왜 모든 사람들이 그것을 그렇게 많이 사용하고 있습니까? 우리와 함께 이것을 이해합시다 PySpark 데이터 프레임 자습서 블로그. 이 블로그에서는 다음 주제를 다룰 것입니다.





PySpark 데이터 프레임 튜토리얼 : 데이터 프레임이란?

데이터 프레임은 일반적으로 본질적으로 표 형식 인 데이터 구조를 나타냅니다. 각 행은 여러 관측 값으로 구성됩니다. 행은 다양한 데이터 형식 ( 이기종 ), 열은 동일한 데이터 유형 ( 동종의 ). 데이터 프레임에는 일반적으로 데이터 외에 열 및 행 이름과 같은 일부 메타 데이터가 포함됩니다.

Dataframe-Pyspark-Dataframe-Tutorial



데이터 프레임은 SQL 테이블이나 스프레드 시트와 유사한 2 차원 데이터 구조 일 뿐이라고 말할 수 있습니다. 이제이 PySpark 데이터 프레임 자습서를 진행하여 Pyspark 데이터 프레임이 정확히 필요한 이유를 이해하겠습니다.

데이터 프레임이 필요한 이유는 무엇입니까?

1. 구조적 및 반 구조적 데이터 처리



데이터 프레임처리하도록 설계되었습니다....에 구조화 된 데이터와 반 구조화 된 데이터 수집 . Spark DataFrame의 관찰은 명명 된 열 아래에 구성되어 Apache Spark가 DataFrame의 스키마를 이해하는 데 도움이됩니다. 이는 Spark가 이러한 쿼리에 대한 실행 계획을 최적화하는 데 도움이됩니다. 그것은 또한 처리 할 수 ​​있습니다 페타 바이트 데이터

2.S 라이 싱 및 다이 싱

데이터 프레임 API는 일반적으로 다음을위한 정교한 방법을 지원합니다. 슬라이싱 및 다이 싱 자료. 그것은 포함합니다조작이름 또는 번호로 행, 열 및 셀 '선택', 행 필터링 등과 같은 ns. 통계 데이터는 일반적으로 매우 지저분하고 많은 누락 및 잘못된 값과 범위 위반을 포함합니다. 따라서 데이터 프레임의 매우 중요한 기능은 누락 된 데이터를 명시 적으로 관리하는 것입니다.

3. 데이터 소스

DataFrame은 광범위한 데이터 형식과 소스를 지원합니다. 나중에이 Pyspark Dataframe Tutorial 블로그에서 이에 대해 살펴 보겠습니다. 다양한 소스에서 데이터를 가져올 수 있습니다.

4. 다국어 지원

Python, R, Scala, Java와 같은 다양한 언어에 대한 API 지원이 있습니다.,프로그래밍 배경이 다른 사람들이 더 쉽게 사용할 수 있습니다.

새로운 업데이트를 받으려면 YouTube 채널을 구독하십시오 ..!

데이터 프레임의 특징

  • 데이터 프레임은 분산 본질적으로 내결함성 및 고 가용성 데이터 구조를 만듭니다.
  • 게으른 평가 값이 필요할 때까지 표현식의 평가를 유지하는 평가 전략입니다. 반복적 인 평가를 피합니다. Spark의 지연 평가는 작업이 트리거 될 때까지 실행이 시작되지 않음을 의미합니다. Spark에서 지연 평가의 그림은 Spark 변환이 발생할 때 나타납니다.
  • 데이터 프레임은 불변 자연에서. 불변이란 상태를 가진 객체라는 것을 의미합니다. 수정할 수 없습니다 생성 후.하지만 우리는이것의적용하여 값특정RDD와 같은 변환.

PySpark 데이터 프레임 소스

Pyspark의 데이터 프레임은 여러 가지 방법으로 생성 할 수 있습니다.

데이터는 CSV, JSON, XML 또는 Parquet 파일. 기존의 RDD 다른 데이터베이스를 통해 하이브 또는 카산드라 게다가. HDFS 또는 로컬 파일 시스템에서 데이터를 가져올 수도 있습니다.

데이터 프레임 생성

이 PySpark Dataframe Tutorial 블로그로 넘어 가서 Dataframe을 만드는 방법을 이해하겠습니다.

Employee 및 Department 인스턴스를 생성합니다.

from pyspark.sql import * Employee = Row ( 'firstName', 'lastName', 'email', 'salary') employee1 = Employee ( 'Basher', 'armbrust', 'bash@edureka.co', 100000) employee2 = Employee ( 'Daniel', 'meng', 'daniel@stanford.edu', 120000) employee3 = Employee ( 'Muriel', None, 'muriel@waterloo.edu', 140000) employee4 = Employee ( 'Rachel', 'wendell ','rach_3@edureka.co ', 160000) employee5 = Employee ('Zach ','galifianakis ','zach_g@edureka.co ', 160000) print (Employee [0]) print (employee3) department1 = Row (id = '123456', name = 'HR') department2 = 행 (id = '789012', 이름 = 'OPS') department3 = 행 (id = '345678', 이름 = 'FN') department4 = 행 (id = ' 901234 ', 이름 ='DEV ')

다음으로 Employee 및 Departments에서 DepartmentWithEmployees 인스턴스를 생성합니다.

departmentWithEmployees1 = Row (department = department1, employee = [employee1, employee2, employee5]) departmentWithEmployees2 = Row (department = department2, employee = [employee3, employee4]) departmentWithEmployees3 = Row (department = department3, employee = [employee1, employee4, employee3 ') ]) departmentWithEmployees4 = Row (department = department4, 직원 = [employee2, employee3])

행 목록에서 데이터 프레임을 만들어 보겠습니다.

departmentsWithEmployees_Seq = [departmentWithEmployees1, departmentWithEmployees2] dframe = spark.createDataFrame (departmentsWithEmployees_Seq) display (dframe) dframe.show ()

Pyspark 데이터 프레임 예 1 : FIFA 월드컵 데이터 세트

여기서는 FIFA 월드컵 선수 데이터 세트를 가져 왔습니다. 이 데이터를 CSV 형식으로로드하겠습니다.이 데이터 프레임에서 수행 할 수있는 다양한 변환 및 작업에 대해 알아 봅니다.

CSV 파일에서 데이터 읽기

CSV 파일에서 데이터를로드 해 보겠습니다. 여기서 우리는 spark.read.csv 데이터를 데이터 프레임 fifa_df에로드하는 메소드입니다. 실제 방법은 spark.read.format [csv / json] .

fifa_df = spark.read.csv ( 'path-of-file / fifa_players.csv', inferSchema = True, 헤더 = True) fifa_df.show ()

데이터 프레임의 스키마

스키마를 살펴보기 위해. 데이터 프레임의 구조에 대해 printSchema 방법. 이렇게하면 해당 특정 열에 대한 데이터 유형 및 nullable 조건과 함께 데이터 프레임의 다른 열이 제공됩니다.

fifa_df.printSchema ()

열 이름 및 개수 (행 및 열)

특정 데이터 프레임의 이름과 행 및 열 수를보고 싶을 때 다음 방법을 사용합니다.

fifa_df.columns // 열 이름 fifa_df.count () // 행 개수 len (fifa_df.columns) // 열 개수

37784 8

특정 열 설명

Dataframe의 특정 열에 대한 요약을보고 싶다면 설명 방법. 이 방법은 지정된 열의 통계 요약을 제공하며 지정되지 않은 경우 데이터 프레임의 통계 요약을 제공합니다.

파이썬에서 숫자를 이진수로 변환하는 방법
fifa_df.describe ( 'Coach Name'). show () fifa_df.describe ( 'Position'). show ()

여러 열 선택

데이터 프레임에서 특정 열을 선택하려면 고르다 방법.

fifa_df.select ( '플레이어 이름', '코치 이름') .show ()

고유 한 여러 열 선택

fifa_df.select ( '플레이어 이름', '코치 이름') .distinct (). show ()

데이터 필터링

데이터를 필터링하기 위해 지정된 조건에 따라 필터 명령. 여기서는 일치 ID가 1096과 같아야한다는 조건에 따라 데이터 프레임을 필터링 한 다음 필터링 된 출력에 몇 개의 레코드 / 행이 있는지 계산합니다.

fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // 카운트 얻기

데이터 필터링 (여러 매개 변수)

여러 조건 (AND 또는 OR)을 기반으로 데이터를 필터링 할 수 있습니다.

fifa_df.filter ((fifa_df.Position == 'C') && (fifa_df.Event == 'G40' ')). show ()

데이터 정렬 (OrderBy)

데이터를 정렬하기 위해 우리는 주문 방법. 기본적으로 오름차순으로 정렬되지만 내림차순으로도 변경할 수 있습니다.

fifa_df.orderBy (fifa_df.MatchID) .show ()

PySpark 데이터 프레임 예제 2 : Superheros 데이터 세트

데이터로드

여기서는 이전과 같은 방식으로 데이터를로드합니다.

Superhero_df = spark.read.csv ( 'path-of file / superheros.csv', inferSchema = True, 헤더 = True) Superhero_df.show (10)

데이터 필터링

Superhero_df.filter (Superhero_df.Gender == '남성') .count () // 남성 영웅 카운트 Superhero_df.filter (Superhero_df.Gender == '여성') .count () // 여성 영웅 카운트

데이터 그룹화

GroupBy 지정된 열을 기반으로 데이터 프레임을 그룹화하는 데 사용됩니다. 여기서는 Race 열을 기준으로 데이터 프레임을 그룹화 한 다음 카운트 기능, 우리는 특정 인종의 수를 찾을 수 있습니다.

Race_df = Superhero_df.groupby ( 'Race') .count () .show ()

SQL 쿼리 수행

또한 SQL 쿼리를 모든 데이터 프레임에 직접 전달할 수 있습니다.이를 사용하여 데이터 프레임에서 테이블을 만들어야하기 때문입니다. registerTempTable 방법을 사용한 다음 sqlContext.sql () SQL 쿼리를 전달합니다.

Superhero_df.registerTempTable ( 'superhero_table') sqlContext.sql ( 'select * from superhero_table'). show ()

sqlContext.sql ( 'superhero_table에서 distinct (Eye_color) 선택') .show ()

sqlContext.sql ( 'superhero_table에서 distinct (Eye_color) 선택') .count ()

2. 3

sqlContext.sql ( 'superhero_table에서 max (Weight) 선택') .show ()

이것으로 PySpark Dataframe Tutorial의 끝입니다.

그래서 이것이야, 여러분!

이 PySpark Dataframe 튜토리얼 블로그에서 PySpark Dataframe이 무엇인지, 왜 업계에서 사용되는지, 그리고 그 기능에 대해 이해 하셨기를 바랍니다. 축하합니다. 더 이상 Dataframe의 초보자가 아닙니다. PySpark에 대해 자세히 알아보고 다양한 산업 사용 사례를 이해하려면 Python을 사용한 Spark PySpark 튜토리얼 블로그.