히스토그램에 PySpark 데이터를 그리는 방법

Hiseutogeulaem E Pyspark Deiteoleul Geulineun Bangbeob



PySpark에서 데이터 시각화는 히스토그램 및 기타 플로팅 기술을 사용하여 수행됩니다. 이는 데이터를 그래픽으로 표현하여 데이터 과학 엔지니어를 이해하는 데 도움이 됩니다. 시간은 그들에게 중요한 제약 조건입니다. 이러한 시각화를 통해 텍스트/csv 등과 같은 다른 데이터 형식과 비교할 때 데이터를 더 빠르게 분석할 수 있습니다.

이 가이드에서는 히스토그램에 PySpark 데이터를 그리는 방법을 알아봅니다. 여기서 두 가지 시나리오를 볼 수 있습니다. 히스토그램은 PySpark Pandas DataFrame 및 RDD 데이터에서 생성됩니다. 이 두 가지 시나리오에서 PySpark는 pyspark.pandas.DataFrame.plot.hist() 및 pyspark.RDD.histogram이라는 두 가지 함수를 제공합니다.

내용 주제:







Pyspark.pandas.DataFrame.plot.hist()

이 시나리오에서 히스토그램은 수평 x축과 함께 다양한 클래스를 열(PySpark Pandas DataFrame에서)로 묶는 데이터의 그래프와 같은 표현으로 표시됩니다. y축은 각 열에 대한 PySpark Pandas DataFrame의 발생 횟수를 나타냅니다.



통사론:



pyspark_pandas_DataFrame.plot.hist(bins,...)

정수인 선택적 매개변수와 몇 가지 선택적 키워드 인수로 총 bin 수를 사용합니다. 각 열에 대해 구간차원을 지정하지 않으면 막대가 생성됩니다.





PySpark Pandas DataFrame에서 히스토그램 플로팅

4개의 레코드가 있는 2개의 열이 있는 PySpark Pandas DataFrame을 만듭니다. plot.hist() 함수에 매개변수를 전달하지 않고 히스토그램을 플로팅합니다.

pyspark 가져오기 팬더에서

pyspark_pandas_dataframe=pandas.DataFrame({ '건물_높이' :[ 120.56 , 234.67 , 12.0 , 200.45 ], '건물_면적' :[ 2 , , 1 , 4 ]})

인쇄(pyspark_pandas_dataframe)

# PySpark-Pandas 히스토그램

pyspark_pandas_dataframe.plot.hist()

산출:



여기서 열 이름은 'Building_height' 및 'Building_Area'입니다.

히스토그램을 살펴보겠습니다.

이전 DataFrame의 총 행 수는 4입니다. 따라서 4개의 빈이 생성됩니다.

Bins 매개변수를 사용하여 PySpark Pandas DataFrame에 히스토그램을 플로팅합니다.

4개의 레코드가 있는 2개의 열이 있는 PySpark Pandas DataFrame을 만듭니다. plot.hist() 함수에 매개변수를 전달하지 않고 히스토그램을 플로팅합니다.

pyspark 가져오기 팬더에서

pyspark_pandas_dataframe=pandas.DataFrame({ '건물_높이' :[ 120.56 , 234.67 , 12.0 , 200.45 ], '건물_면적' :[ 2 , , 1 , 4 ]})

# 2개의 저장소가 있는 PySpark-Pandas 히스토그램

pyspark_pandas_dataframe.plot.hist(bins= 2 )

산출:

여기서 열 이름은 'Building_height' 및 'Building_Area'입니다.

히스토그램을 살펴보겠습니다. 빨간색은 'Building_Area'를 나타내고 파란색은 'Building_height' 열을 나타냅니다.

지정한 대로 2개의 빈과 2개의 막대만 생성되었습니다. 여기에서 4개의 행이 2개의 버킷으로 비닝됩니다.

버킷 번호를 지정하여 PySpark RDD에 히스토그램 플로팅

RDD로 작업할 때 버킷과 각 버킷에 있는 총 값을 포함하는 튜플 형식으로 히스토그램을 반환할 수 있습니다.

통사론:

pyspark_RDD.histogram(버킷)

이 시나리오에서는 히스토그램에 포함된 버킷(정수)의 수를 전달합니다. 다음 형식으로 버킷 범위 및 해당 값 발생을 포함하는 목록의 튜플을 반환합니다. ([버킷 범위…], [값 발생…]).

예 1:

10개의 값이 있는 'Building_height'라는 RDD를 생성하고 3개의 버킷이 있는 히스토그램을 생성해 보겠습니다.

파이스파크 가져오기

pyspark.sql에서 SparkSession 가져오기

pyspark.rdd 가져오기 RDD에서

spark_app = SparkSession.builder.appName( '리눅스' ).getOrCreate()

# 10개의 값으로 RDD 생성

Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])

인쇄( '실제: ' ,Building_height.collect())

# 버킷 3개 지정

Building_height.histogram( )

산출:

  1. Bucket-1 ranges from 12.0 to 86.223: 이 범위에서 버킷에 있는 총 값 수는 5입니다.
  2. Bucket-2 ranges from 86.223 to 160.446: 이 범위에서 버킷에 있는 총 값 수는 3입니다.
  3. Bucket-3 ranges from 160.446 to 234.67: 이 범위에서 버킷에 있는 총 값 수는 2입니다.

예 2:

이전에 생성한 RDD에서 2개의 버킷으로 히스토그램을 생성합니다.

파이스파크 가져오기

pyspark.sql에서 SparkSession 가져오기

pyspark.rdd 가져오기 RDD에서

spark_app = SparkSession.builder.appName( '리눅스' ).getOrCreate()

# 10개의 값으로 RDD 생성

Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 78 , 90 , 100 ])

인쇄( '실제: ' ,Building_height.collect())

# 버킷 2개 지정

Building_height.histogram( 2 )

산출:

  1. 버킷 1의 범위는 12.0에서 123.335까지입니다. 이 범위에서 버킷에 있는 총 값 수는 8입니다.
  2. Bucket 2 ranges from 123.335 to 234.67: 이 범위에서 버킷에 있는 총 값 수는 2입니다.

각 버킷의 크기를 지정하여 PySpark RDD에 히스토그램 플로팅

이전 시나리오에서는 RDD.histogram() 함수에 버킷을 전달했습니다. 이제 목록 내에서 버킷 크기를 차례로 전달하고 이 목록을 이 함수의 매개 변수로 전달합니다. 최소 2개의 버킷을 오름차순/오름차순으로 지정해야 하며 중복 값이 ​​없도록 해야 합니다.

통사론:

pyspark_RDD.histogram([버킷 범위…])

이 시나리오에서는 히스토그램에 포함된 버킷(정수)의 수를 전달합니다. 다음 형식으로 버킷 범위 및 해당 값 발생을 포함하는 목록의 튜플을 반환합니다. ([버킷 범위…], [값 발생…]).

예 1:

10개의 값이 있는 'Building_height'라는 RDD를 생성하고 [0, 50, 100, 150, 200, 250] 값의 버커 범위로 히스토그램을 생성해 봅시다.

파이스파크 가져오기

pyspark.sql에서 SparkSession 가져오기

pyspark.rdd 가져오기 RDD에서

spark_app = SparkSession.builder.appName( '리눅스' ).getOrCreate()

# 10개의 값으로 RDD 생성

Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])

인쇄( '실제: ' ,Building_height.collect())

# 버킷 크기 지정 - [0,50,100,150,200,250]

Building_height.histogram([ 0 , 오십 , 100 , 150 , 200 , 250 ])

산출:

  1. 버킷 1: (0 ~ 50) : 이 버킷의 총 값은 3입니다.
  2. 버킷 1: (50 ~ 100) : 이 버킷의 총 값은 2입니다.
  3. 버킷 1: (100 ~ 150) : 이 버킷의 총 값은 2입니다.
  4. 버킷 1: (150 ~ 200) : 이 버킷의 총 값은 2입니다.
  5. 버킷 1: (200 ~ 250) : 이 버킷의 총 값은 2입니다.

예 2:

버킷 범위 값이 [0, 100, 200, 300]인 히스토그램을 생성합니다.

파이스파크 가져오기

pyspark.sql에서 SparkSession 가져오기

pyspark.rdd 가져오기 RDD에서

spark_app = SparkSession.builder.appName( '리눅스' ).getOrCreate()

# 10개의 값으로 RDD 생성

Building_height =spark_app.sparkContext.parallelize([ 120.56 , 234.67 , 12.0 , 200.45 , 17.8 , 24 , 56 , 178 , 90 , 100 ])

인쇄( '실제: ' ,Building_height.collect())

# 버킷 크기 지정 - [0,100,200,300]

Building_height.histogram([ 0 , 100 , 200 , 300 ])

산출:

  1. 버킷 1: (0 ~ 100). 이 버킷의 총 값은 5입니다.
  2. 버킷 2: (100~200). 이 버킷의 총 값은 3입니다.
  3. 버킷 3: (200~300). 이 버킷의 총 값은 2입니다.

결론

PySpark Pandas DataFrame 및 RDD의 PySpark에서 히스토그램을 만드는 방법을 살펴보았습니다. histogram()은 RDD 데이터에서 히스토그램을 얻는 데 사용되는 함수입니다. plot.hist()는 PySpark Pandas DataFrame에 히스토그램을 표시하는 데 사용됩니다. 우리는 모든 매개변수를 다루면서 예제와 함께 이러한 기능에 대해 논의했습니다.