Skip to content

Função tolist() do PySpark feita facilmente: um guia abrangente

Updated on

Como cientista de dados, você provavelmente está familiarizado com PySpark, uma poderosa ferramenta para processamento e análise de big data. PySpark é uma biblioteca Python para o Apache Spark, um mecanismo analítico unificado para o processamento de big data. No PySpark, DataFrames são uma estrutura de dados importante usada para o processamento de dados. Uma tarefa comum no processamento de dados é converter PySpark DataFrames em listas Python. Neste guia, explicaremos como usar a função tolist() do PySpark para realizar essa tarefa.

Quer criar rapidamente visualizações de dados a partir do dataframe do Python Pandas sem código?

PyGWalker é uma biblioteca Python para análise exploratória de dados com visualização. PyGWalker (opens in a new tab) pode simplificar seu fluxo de trabalho de análise e visualização de dados do notebook Jupyter, transformando seu dataframe pandas (e dataframe polars) em uma interface de usuário estilo Tableau para exploração visual.

PyGWalker para visualização de dados (opens in a new tab)

O que é a função tolist() do PySpark?

A função tolist() é uma função SQL do PySpark usada para converter um DataFrame em uma lista Python. A função não recebe argumentos e retorna uma lista de linhas no DataFrame. Cada linha no DataFrame é representada como uma lista de valores.

Como usar a função tolist() do PySpark?

O uso da função tolist() no PySpark é simples. Aqui está a sintaxe básica:

df.toPandas().values.tolist()

No código acima, estamos usando a função toPandas() do PySpark para converter o DataFrame em um DataFrame Pandas. Em seguida, estamos usando a função values.tolist() do Pandas para converter o DataFrame Pandas em uma lista Python.

Vamos dar uma olhada mais de perto em como usar a função tolist() do PySpark com exemplos.

Exemplo 1: Convertendo um PySpark DataFrame em uma lista Python

Digamos que tenhamos o seguinte DataFrame PySpark:```python from pyspark.sql import SparkSession

criar SparkSession

spark = SparkSession.builder.appName('PySparkTutorial').getOrCreate()

criar DataFrame

data = [('Alice', 1), ('Bob', 2), ('Charlie', 3), ('David', 4)] df = spark.createDataFrame(data, ['Nome', 'Idade'])

mostrar DataFrame

df.show()


Saída:

+-------+-----+ | Nome|Idade| +-------+-----+ | Alice| 1| | Bob| 2| |Charlie| 3| | David| 4| +-------+-----+


Para converter esse DataFrame em uma lista Python, podemos usar a função tolist() da seguinte maneira:

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

Saída:

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

Exemplo 2: Convertendo um DataFrame PySpark com índice em uma lista Python

Em alguns casos, você pode querer incluir o índice do DataFrame na lista Python. Aqui está um exemplo que irá mostrar como fazer isso:

from pyspark.sql.functions import row_number
from pyspark.sql.window import Window
 
# criar DataFrame com índice
df_index = df.withColumn("índice", row_number().over(Window.orderBy("Nome")))
 
# mostrar DataFrame com índice
df_index.show()

Saída:

+-------+-----+------+
|   Nome|Idade|índice|
+-------+-----+------+
|  Alice|    1|     1|
|    Bob|    2|     2|
|Charlie|    3|     3|
|  David|    4|     4|
+-------+-----+------+

Para converter este DataFrame em uma lista Python que inclui o índice, podemos usar a função to_dict() do Pandas e depois converter o dicionário resultante em uma lista:

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

Saída:

[{'Nome': 'Alice', 'Idade': 1, 'índice': 1},
 {'Nome': 'Bob', 'Idade': 2, 'índice': 2},
 {'Nome': 'Charlie', 'Idade': 3, 'índice': 3},
 {'Nome': 'David', 'Idade': 4, 'índice': 4}]

Conclusão

Neste guia, aprendemos como usar a função PySpark tolist() para converter PySpark DataFrames em Listas Python. Também mostramos exemplos de como usar essa função com e sem índices do DataFrame. Esperamos que este guia tenha sido útil em suas tarefas de processamento de dados e encorajamos você a explorar outras funções PySpark para aprimorar ainda mais suas habilidades.

Referências

Perguntas Frequentes

  1. Como converter um DataFrame em uma lista?

    Para converter um DataFrame em uma lista no Python, você pode usar o método values.tolist(). Esse método retornará uma lista aninhada, em que cada lista interna representa uma linha do DataFrame. A lista resultante pode ser usada para processamento ou análise adicional.

  2. Como converter uma coluna específica em uma lista no DataFrame?

    Sim, é possível converter uma coluna específica em uma lista no DataFrame. Acesse a coluna usando o operador de indexação [] com o nome da coluna e, em seguida, aplique o método tolist(). Isso retornará uma lista contendo os valores da coluna selecionada.

  3. Como converter várias colunas em uma lista no DataFrame?

    Sim, é possível converter várias colunas em uma lista no DataFrame. Acesse as colunas usando o operador de indexação [] com os nomes das colunas desejadas e, em seguida, aplique o método values.tolist(). Isso retornará uma lista aninhada contendo os valores das colunas selecionadas.