Skip to content
튜토리얼
PySpark
PySpark tolist() 함수 만들기 쉬운 정리: 전체 가이드

PySpark tolist() 함수 만들기 쉬운 정리: 전체 가이드

데이터 과학자라면 대용량 데이터를 처리하고 분석하는 데 강력한 도구인 PySpark를 이미 알고 있을 것입니다. PySpark는 대용량 데이터 처리를 위한 통합 분석 엔진인 Apache Spark의 파이썬 라이브러리입니다. PySpark에서 데이터 프로세싱에 사용되는 핵심 데이터 구조는 DataFrame입니다. 데이터 프로세싱에서 흔한 작업 중 하나는 PySpark DataFrame을 Python 리스트로 변환하는 것입니다. 이 가이드에서 우리는 이 작업을 수행하는 데 사용할 수 있는 PySpark tolist() 함수를 설명합니다.

코드 없이 Python Pandas Dataframe에서 데이터 시각화를 빠르게 만들려면?

PyGWalker은 시각적 탐색을 위한 Python 라이브러리로 데이터 분석 및 데이터 시각화 작업 흐름을 단순화합니다. PyGWalker는 pandas dataframe(및 polars dataframe)을 Tableau 스타일의 사용자 인터페이스로 변환하여 Jupyter Notebook 데이터 분석 및 데이터 시각화 작업의 워크플로를 단순화합니다.

PyGWalker를 사용한 데이터 시각화 (opens in a new tab)

PySpark tolist() 함수란?

tolist() 함수는 DataFrame을 Python 리스트로 변환하는 PySpark SQL 함수입니다. 이 함수는 인수를 받지 않고 DataFrame의 행(row) 목록을 반환합니다. DataFrame의 각 행은 값 목록(list of values)으로 표현됩니다.

PySpark tolist() 함수 사용법

PySpark에서 tolist() 함수를 사용하는 것은 간단합니다. 다음은 기본 구문입니다.

df.toPandas().values.tolist()

위 코드에서 우리는 PySpark toPandas() 함수를 사용하여 DataFrame을 Pandas DataFrame으로 변환합니다. 그런 다음, Pandas values.tolist() 함수를 사용하여 Pandas DataFrame을 Python 리스트로 변환합니다.

실제 예제를 사용하여 PySpark tolist() 함수를 사용하는 방법에 대해 자세히 알아보겠습니다.

예제 1: PySpark DataFrame을 Python 리스트로 변환

참고할 PySpark DataFrame이 다음과 같다고 가정해 봅시다.

from pyspark.sql import SparkSession
 
# create SparkSession
spark = SparkSession.builder.appName('PySparkTutorial').getOrCreate()
 
# create DataFrame
data = [('Alice', 1), ('Bob', 2), ('Charlie', 3), ('David', 4)]
df = spark.createDataFrame(data, ['Name', 'Age'])
 
# display DataFrame
df.show()

출력:

+-------+---+
|   Name|Age|```markdown
+-------+---+
|  Alice|  1|
|    Bob|  2|
|Charlie|  3|
|  David|  4|
+-------+---+

이 DataFrame을 Python 리스트로 변환하려면, 다음과 같이 tolist() 함수를 사용할 수 있습니다.

```python
df.toPandas().values.tolist()

결과:

[['Alice', 1], ['Bob', 2], ['Charlie', 3], ['David', 4]]

예제2: 인덱스가 포함된 PySpark DataFrame을 Python 리스트로 변환하기

인덱스가 포함된 DataFrame을 리스트로 변환하고자 하는 경우가 있습니다. 다음 예제에서는 이를 수행하는 방법을 보여줍니다.

from pyspark.sql.functions import row_number
from pyspark.sql.window import Window
 
# 인덱스가 포함된 DataFrame 생성
df_index = df.withColumn("index", row_number().over(Window.orderBy("Name")))
 
# 인덱스가 포함된 DataFrame 출력
df_index.show()

결과:

+-------+---+-----+
|   Name|Age|index|
+-------+---+-----+
|  Alice|  1|    1|
|    Bob|  2|    2|
|Charlie|  3|    3|
|  David|  4|    4|
+-------+---+-----+

이 DataFrame을 인덱스와 함께 Python 리스트로 변환하려면, Pandas to_dict() 함수를 사용하여 딕셔너리로 변환한 다음 이를 리스트로 변환합니다.

df_index.toPandas().to_dict('records')

결과:

[{'Name': 'Alice', 'Age': 1, 'index': 1},
 {'Name': 'Bob', 'Age': 2, 'index': 2},
 {'Name': 'Charlie', 'Age': 3, 'index': 3},
 {'Name': 'David', 'Age': 4, 'index': 4}]

결론

이 가이드에서는 PySpark tolist() 함수를 사용하여 PySpark 데이터프레임을 Python 리스트로 변환하는 방법을 배웠습니다. 또한 데이터프레임 인덱스를 사용하여 이 함수를 사용하는 예제도 소개했습니다. 이 가이드가 데이터 처리 작업에 도움이 되었기를 바라며, PySpark 함수를 더 탐구하여 기술을 향상시키는 것을 권장합니다.

참고 자료

자주 묻는 질문

  1. DataFrame을 리스트로 변환하는 방법은 무엇인가요?

    DataFrame을 리스트로 변환하려면 Python에서 values.tolist() 메서드를 사용합니다. 이 메서드는 각 내부 리스트가 DataFrame의 행을 나타내는 중첩된 리스트를 반환합니다. 변환된 리스트는 추가적인 처리나 분석에 사용할 수 있습니다.

  2. DataFrame에서 특정 열을 리스트로 변환하는 방법이 있나요?

    예, DataFrame에서 특정 열을 리스트로 변환할 수 있습니다. 열 이름을 사용하여 인덱싱 연산자 []로 열에 접근한 다음 tolist() 메서드를 적용합니다. 이렇게 하면 선택한 열의 값이 포함된 리스트가 반환됩니다.

  3. DataFrame의 여러 열을 리스트로 변환하는 방법은 있나요?

    예, DataFrame의 여러 열을 리스트로 변환할 수 있습니다. 열 이름을 사용하여 인덱싱 연산자 []로 선택한 다음 values.tolist() 메서드를 적용합니다. 이렇게 하면 선택한 열의 값이 포함된 중첩된 리스트가 반환됩니다.