Seleção
A variante do Spark correspondente ao SELECT
do SQL é o método .select()
. Esse método recebe vários argumentos – um para cada coluna que você deseja selecionar. Esses argumentos podem ser o nome da coluna como uma string (um para cada coluna) ou um objeto de coluna (usando a sintaxe df.colName
). Ao passar um objeto de coluna, você pode realizar operações como soma ou subtração com a coluna para alterar os dados contidos nela, de forma muito semelhante ao que é feito em .withColumn()
.
A diferença entre os métodos .select()
e .withColumn()
é que .select()
retorna somente as colunas que você especificar, enquanto .withColumn()
retorna todas as colunas do DataFrame, além da que você definiu. Geralmente convém eliminar as colunas de que você não precisa no início de uma operação, para que você não leve dados extras durante a preparação. Nesse caso, você deve usar .select()
, e não .withColumn()
.
Lembre-se de que uma SparkSession chamada spark
já está em seu espaço de trabalho, junto com o DataFrame flights
do Spark.
Este exercício faz parte do curso
Introdução ao PySpark
Instruções de exercício
- Selecione as colunas
"tailnum"
,"origin"
e"dest"
deflights
passando os nomes das colunas como strings. Salve o resultado comoselected1
. - Selecione as colunas
"origin"
,"dest"
e"carrier"
usando a sintaxedf.colName
e, em seguida, filtre o resultado usando os dois filtros já definidos para você (filterA
efilterB
) para manter apenas os voos de SEA a PDX. Salve o resultado comoselected2
.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# Select the first set of columns
selected1 = flights.select("____", "____", "____")
# Select the second set of columns
temp = flights.select(____.____, ____.____, ____.____)
# Define first filter
filterA = flights.origin == "SEA"
# Define second filter
filterB = flights.dest == "PDX"
# Filter the data, first by filterA then by filterB
selected2 = temp.filter(____).filter(____)