Spark 목록을 Pandas Dataframe으로 변환
-
topandas()
메서드를 사용하여 Spark 목록을 Pandas Dataframe으로 변환 -
parallelize()
함수를 사용하여 Spark 목록을 Python Pandas Dataframe으로 변환 - 결론
이 문서에서는 Spark 행 목록을 Pandas 데이터 프레임으로 변환합니다.
topandas()
메서드를 사용하여 Spark 목록을 Pandas Dataframe으로 변환
createDataframe()
구문:
current_session.createDataFrame(data, schema=None, samplingRatio=None, verifySchema=True)
매개변수:
데이터
: 이 매개변수에는 SQL/MySQL 형식의 데이터 또는 데이터 세트가 포함됩니다.스키마
: 데이터 프레임의 열 이름을 포함합니다.sampling Ratio
(float): 행의 비율입니다.verify Schema
(bool): 스키마의 데이터 유형을 확인하기 위한 부울 유형입니다.
위의 매개 변수는 Spark 데이터 프레임 개체를 반환합니다. 위 방법의 예는 다음과 같습니다.
먼저 이 함수를 사용하여 행 목록 데이터를 전달하고 스파크 데이터 프레임을 만듭니다. 그런 다음 PySpark 및 기타 관련 모듈을 가져옵니다.
암호:
import pyspark
from pyspark.sql import SparkSession
from pyspark.sql import Row
row_pandas_session = SparkSession.builder.appName("row_pandas_session").getOrCreate()
row_object_list = [
Row(Topic="Machine Learning", Difficulty=10),
Row(Topic="Artifical Intligence", Difficulty=5),
Row(Topic="Deep learning", Difficulty=6),
Row(Topic="Python Ptogramming", Difficulty=7),
]
스파크 데이터 프레임을 생성하려면 createDataframe()
함수를 사용하십시오.
df = row_pandas_session.createDataFrame(row_object_list)
show()
함수를 사용하여 생성된 스파크 데이터 프레임을 표시합니다.
df.show()
출력:
+--------------------+----------+
| Topic|Difficulty|
+--------------------+----------+
| Machine Learning| 10|
|Artifical Intligence| 5|
| Deep learning| 6|
| Python Ptogramming| 7|
+--------------------+----------+
마지막으로 topandas()
함수를 사용하여 스파크 데이터 프레임을 Pandas 데이터 프레임으로 변환합니다. 그런 다음 Pandas 데이터 프레임을 인쇄합니다.
pandas_df = df.toPandas()
pandas_df
출력:
Topic Difficulty
0 Machine Learning 10
1 Artifical Intligence 5
2 Deep learning 6
3 Python Ptogramming 7
전체 코드:
import pyspark
from pyspark.sql import SparkSession
from pyspark.sql import Row
row_pandas_session = SparkSession.builder.appName("row_pandas_session").getOrCreate()
row_object_list = [
Row(Topic="Machine Learning", Difficulty=10),
Row(Topic="Artifical Intligence", Difficulty=5),
Row(Topic="Deep learning", Difficulty=6),
Row(Topic="Python Ptogramming", Difficulty=7),
]
df = row_pandas_session.createDataFrame(row_object_list)
df.show()
pandas_df = df.toPandas()
pandas_df
parallelize()
함수를 사용하여 Spark 목록을 Python Pandas Dataframe으로 변환
RDD를 생성하기 위해 parallelize()
기능을 사용합니다. 병렬화는 미리 정의된 컬렉션의 요소를 병렬 작업을 수행할 수 있는 분산 데이터 세트에 복사하는 것을 말합니다.
통사론:
sc.parallelize(data,numSlices)
어디:
sc
: Spark 컨텍스트 개체
매개변수:
데이터
: 이것은 RDD를 위해 만들어진 데이터 또는 데이터 세트입니다.numSlices
: 파티션 수를 지정합니다. 선택적 매개변수입니다.
아래 코드는 이전 섹션과 동일합니다.
import pyspark
from pyspark.sql import SparkSession
from pyspark.sql import Row
row_pandas_session = SparkSession.builder.appName("row_pandas_session").getOrCreate()
row_object_list = [
Row(Topic="Machine Learning", Difficulty=10),
Row(Topic="Artifical Intligence", Difficulty=5),
Row(Topic="Deep learning", Difficulty=6),
Row(Topic="Python Ptogramming", Difficulty=7),
]
이제 RDD를 사용하여 데이터 프레임을 만듭니다.
rdd = row_pandas_session.sparkContext.parallelize(row_object_list)
rdd
출력:
ParallelCollectionRDD[11] at readRDDFromFile at PythonRDD.scala:274
이제 아래와 같이 데이터 프레임을 생성합니다.
df = row_pandas_session.createDataFrame(rdd)
df.show()
출력:
+--------------------+----------+
| Topic|Difficulty|
+--------------------+----------+
| Machine Learning| 10|
|Artifical Intligence| 5|
| Deep learning| 6|
| Python Ptogramming| 7|
+--------------------+----------+
마지막으로 Pandas 데이터 프레임으로 변환합니다.
df2 = df.toPandas()
print(df2)
출력:
Topic Difficulty
0 Machine Learning 10
1 Artifical Intligence 5
2 Deep learning 6
3 Python Ptogramming 7
결론
이 기사에서는 두 가지 방법을 사용했습니다. 먼저 createDataframe()
함수를 사용한 다음 topandas()
함수를 사용하여 Spark 목록을 Pandas 데이터 프레임으로 변환합니다.
우리가 사용한 두 번째 방법은 parallelize()
기능입니다. 이 방법에서는 먼저 이전과 동일한 기능을 사용하여 Spark 데이터 프레임을 만든 다음 RDD를 사용하여 병렬화하고 Spark 데이터 프레임을 만듭니다.
Spark 데이터 프레임은 topandas()
함수를 사용하여 Pandas 데이터 프레임으로 변환됩니다.