...
Code Block | ||
---|---|---|
| ||
# ruim df = ( df .select('foo', 'bar', 'foobar', 'abc') .filter(F.col('abc') == 123) .join(another_table, 'some_field') ) # melhor df = ( df .select('foo', 'bar', 'foobar', 'abc') .filter(F.col('abc') == 123) ) df = df.join(another_table, 'some_field', how='inner') |
Expressões de várias linhas
A razão pela qual você pode encadear expressões é porque o Pyspark foi desenvolvido a partir do Spark, que vem das linguagens JVM. Isso significou que alguns padrões de design foram transportados, especificamente para cadeiabilidade. No entanto, Python não suporta expressões de várias linhas normalmente e as únicas maneiras são fornecer quebras de linhas explícitas ou colocar a expressão entre parênteses. Você só precisa fornecer quebras explícitas se a cadeia ocorrer no nó raiz. Por exemplo:
Code Block | ||
---|---|---|
| ||
# ruim
df = df.filter(F.col('event') == 'executing')\
.filter(F.col('has_tests') == True)\
.drop('has_tests')
# bom
df = (
df
.filter(F.col('event') == 'executing')
.filter(F.col('has_tests') == True)
.drop('has_tests')
) |
Para manter a consistência, envolva a expressão em um único bloco de parênteses e evite usar \
Info |
---|
Para maiores informações utilize a documentação oficial da Apache Spark : https://spark.apache.org/docs/latest/sql-programming-guide.html |