Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagepy
# ruim
df.select('comments').withColumn('comments', F.col('comments').cast('double'))

# bom
df.select(F.col('comments').cast('double'))

Colunas Vazias

Se você precisar adicionar uma coluna vazia para satisfazer um schema, sempre use F.lit(None) para preencher essa coluna. Nunca use uma string vazia ou alguma outra string sinalizando um valor vazio (como NA).

Além de ser semanticamente correto, uma razão prática para utilizar F.lit(None) é preservar a capacidade de usar utilitários como isNull, em vez de verificar strings vazias, nulos e NA, etc.

Code Block
languagepy
# ruim
df = df.withColumn('foo', F.lit(''))

# ruim 
df = df.withColumn('foo', F.lit('NA'))

# bom 
df = df.withColumn('foo', F.lit(None))

Usando Comentários

Enquanto os comentários podem fornecer informações úteis no código, muitas vezes é mais valioso refatorar o código para melhorar sua legibilidade, o código deve ser legível por si mesmo.

Se você estiver usando comentários para explicar a lógica passo a passo, você de refatorar.

UDFS (user defined functions)

É altamente recomendável evitar o uso de UDFS em todas as situações, pois são drasticamente menos performáticas do que Pyspark nativo. Na maioria das situações a lógica que parece exigir uma UDF, pode ser refatorada para usar apenas funções nativas Pyspark.

Info

Para maiores informações utilize a documentação oficial da Apache Spark :

https://spark.apache.org/docs/latest/sql-programming-guide.html

...