ComeçarComece de graça

Criação de colunas

Neste capítulo, você aprenderá a usar os métodos definidos pela classe DataFrame do Spark para realizar operações de dados comuns.

Vamos dar uma olhada na execução de operações por coluna. No Spark, você pode fazer isso usando o método .withColumn(), que recebe dois argumentos. Primeiro, uma string com o nome da nova coluna e, segundo, a nova coluna em si.

A nova coluna deve ser um objeto da classe Column. Para criar um, basta extrair uma coluna do DataFrame usando df.colName.

Atualizar um Spark DataFrame é um pouco diferente de trabalhar no pandas porque o DataFrame do Spark é imutável. Isso significa que ele não pode ser alterado e, portanto, as colunas não podem ser atualizadas no local.

Assim, todos esses métodos retornam um novo DataFrame. Para substituir o DataFrame original, você deve reatribuir o DataFrame retornado usando o método da seguinte forma:

df = df.withColumn("newCol", df.oldCol + 1)

O código acima cria um DataFrame com as mesmas colunas de df mais uma nova coluna, newCol, em que cada entrada é igual à entrada correspondente de oldCol, mais uma.

Para substituir uma coluna existente, basta passar o nome da coluna como primeiro argumento!

Lembre-se de que uma SparkSession chamada spark já está em seu espaço de trabalho.

Este exercício faz parte do curso

Introdução ao PySpark

Ver curso

Instruções do exercício

  • Use o método spark.table() com o argumento "flights" para criar um DataFrame que contenha os valores da tabela flights no .catalog. Salve-o como flights.
  • Mostre o cabeçalho de flights usando flights.show(). Verifique o resultado: a coluna air_time contém a duração do voo em minutos.
  • Atualize flights para incluir uma nova coluna chamada duration_hrs, que contém a duração de cada voo em horas (você precisa dividir air_time pelo número de minutos em uma hora).

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# Create the DataFrame flights
flights = spark.table(____)

# Show the head
____.____()

# Add duration_hrs
flights = flights.withColumn(____)
Editar e executar o código