...
Instruções Select
Realizar o select() no começo de uma transformação PySpark é considerado uma boa prática, expressões envolvendo mais de um df, ou operações condicionais como .when() são desencorajadas de serem usadas em um select(), a menos que seja necessário por motivos de desempenho.
...
Code Block |
---|
# bom
aircraft = aircraft.select(
'aircraft_id',
'aircraft_msn',
'aircraft_type',
'operator_code',
F.col('aircraft_registration').alias('registration'),
F.col('number_of_economy_seats').cast('long'),
F.col('number_of_business_seats').cast('long'),
F.avg('staleness').alias('avg_staleness'),
F.avg('flight_hours').alias('avg_flight_hours'),
) |
A instrução select() redefine o esquema de um dataframe, portanto, naturalmente suporta a inclusão ou exclusão de colunas, antigas e novas, bem como a redefinição de colunas pré-existentes. Ao centralizar todas essas operações em uma única instrução, fica muito mais fácil identificar o esquema final, o que torna o código mais legível e conciso.
Em vez de utilizar withColumnRenamed(), use aliases:
Code Block | ||
---|---|---|
| ||
# ruim
df.select('key', 'comments').withColumnRenamed('comments', 'num_comments')
# bom
df.select('key', F.col('comments').alias('num_comments')) |
Em vez de utilizar withColumn() para redefinir o tipo, converta no select:
Code Block | ||
---|---|---|
| ||
# ruim df.select('comments').withColumn('comments', F.col('comments').cast('double')) # bom df.select(F.col('comments').cast('double')) |
Info |
---|
Para maiores informações utilize a documentação oficial da Apache Spark : https://spark.apache.org/docs/latest/sql-programming-guide.html |
...