Pratique Pyspark
Funções Importantes
| Função | Descrição | Categoria |
|---|---|---|
| .sort() | Ordena o DataFrame. | Desconhecido |
| .orderBy() | Ordena o DataFrame baseado em colunas. | Desconhecido |
| .desc_null_first() | Ordena de forma decrescente tratando NULLs primeiro. | Desconhecido |
| .asc_null_first() | Ordena de forma crescente tratando NULLs primeiro. | Desconhecido |
| .desc_null_last() | Ordena de forma decrescente colocando NULLs por último. | Desconhecido |
| .asc_null_last() | Ordena de forma crescente colocando NULLs por último. | Desconhecido |
| .coalesce() | Reduz o número de partições. | Narrow |
| .repartition() | Reparticiona o DataFrame em n partições. | Wide |
| .cache() | Armazena o DataFrame na memória. | Ação |
| .unpersist() | Remove o DataFrame do armazenamento em cache. | Ação |
| .storageLevel() | Retorna o nível de armazenamento do DataFrame. | Desconhecido |
| .filter()/.where() | Filtra as linhas do DataFrame. | Narrow |
| .select() | Seleciona colunas específicas. | Narrow |
| .agg() | Agrega dados. | Wide |
| .groupBy() | Agrupa os dados por colunas específicas. | Wide |
| .drop() | Remove uma ou mais colunas. | Narrow |
| .dropDuplicates() | Remove linhas duplicadas. | Wide |
| .sample() | Retorna uma amostra do DataFrame. | Narrow |
| .UDF() | Aplica uma função definida pelo usuário. | Desconhecido |
| .foreach() | Aplica uma função a cada linha do DataFrame. | Ação |
| .when()/.otherwise() | Funcionalidade condicional. | Narrow |
| .isNull() | Verifica se um valor é NULL. | Narrow |
| .window() | Utilizado para funções de janela. | Desconhecido |
| .summary() | Retorna estatísticas resumidas. | Wide |
| .describe() | Retorna estatísticas descritivas. | Wide |
| .union() | Une dois DataFrames. | Narrow |
| .unionByName() | Une dois DataFrames por nome. | Narrow |
| .join() | Realiza um join entre dois DataFrames. | Wide |
| .na.drop() | Remove linhas com valores NA. | Narrow |
| .na.fill() | Preenche valores NA com valores específicos. | Narrow |
| .row() | Retorna uma linha do DataFrame. | Desconhecido |
| .col() | Retorna uma coluna do DataFrame. | Desconhecido |
| .withColumn() | Adiciona ou substitui uma coluna. | Narrow |
| .withColumnRenamed() | Renomeia uma coluna. | Narrow |
| .approx_count_distinct() | Retorna a contagem aproximada de valores distintos. | Wide |
| .array_contains() | Verifica se um array contém um valor específico. | Narrow |
| .contains() | Verifica se uma string contém outra string. | Narrow |
| .distinct() | Retorna valores distintos. | Wide |
| .size() | Retorna o tamanho de uma coluna de tipo array. | Narrow |
| .explode() | Transforma cada elemento de uma coluna de array em uma linha. | Wide |
| .explode_outer() | Semelhante ao .explode() mas preserva linhas com NULL. | Wide |
| .posexplode() | Semelhante ao .explode() mas adiciona uma coluna com índice. | Wide |
| .take() | Retorna os primeiros n elementos. | Ação |
| .collect() | Retorna todos os registros do DataFrame como uma lista. | Ação |
| .isNotNull() | Verifica se um valor não é NULL. | Narrow |
| .isin() | Verifica se um valor está em uma lista de valores. | Narrow |
| createOrReplaceTempView() | Cria ou substitui uma visão temporária. | Ação |
| + spark.sql('''codigo_sql''') | Executa uma consulta SQL e retorna um DataFrame. | Ação |
| .count() | Retorna a contagem de linhas. | Ação |
| .sum() | Retorna a soma dos valores. | Ação |
| .avg() | Retorna a média dos valores. | Ação |
| .min()/max() | Retorna o valor mínimo/máximo. | Ação |
| .countApprox() | Retorna uma contagem aproximada de valores distintos. | Ação |
| .count_distinct() | Retorna a contagem de valores distintos. | Ação |
| .alias() | Define um alias para o DataFrame. | Narrow |
| .cast() | Converte o tipo de coluna. | Narrow |
| .regex_replace() | Substitui substrings baseado em expressão regular. | Narrow |
| .regex_extract() | Extrai substrings usando expressão regular. | Narrow |
| .startswith() | Verifica se uma string começa com uma substring. | Narrow |
| .endswith() | Verifica se uma string termina com uma substring. | Narrow |
| .month() | Retorna o mês de uma data. | Narrow |
| .hour() | Retorna a hora de uma data. | Narrow |
| .year() | Retorna o ano de uma data. | Narrow |
| .unix_timestamp() | Converte a data para um timestamp Unix. | Narrow |
| .from_unixtime() | Retorna a data a partir de um timestamp Unix. | Narrow |
| .from_utc_timestamp() | Retorna a data a partir de um UTC timestamp. | Narrow |
| .datediff() | Retorna a diferença entre duas datas. | Narrow |
| .to_date() | Converte uma string para uma data. | Narrow |
| .current_date() | Retorna a data atual. | Narrow |
| .lit() | Retorna uma coluna de valor constante. | Narrow |
Formas diferentes de escrever a mesma coisa
No Spark, é possível expressar a mesma operação de várias maneiras, graças à sua flexibilidade e design voltado ao usuário. Abaixo, apresento exemplos dessa versatilidade usando funções comuns, como filtragem, joins e ordenação.
Filter:
Filter:
df.filter(df.column != ‘xxxxx’)df.filter(~(df.column == ‘xxxxx’))df.filter(col(‘column’) != ‘xxxxx’)df.filter(column != ‘xxxxxx)`
Joins:
df1.join(df2, col(‘df1.column’) == col(‘df2.column’), ‘left’)df1.join(df2, df1.column == df2.column, ‘left’)df1.join(df2, df1[‘column’] == df2[‘column’], ‘left’)df1.join(df2, [‘column’, ‘column’], ‘left’)
sort e orderBy:
df.sort(df.column.desc())df.sort(col(‘column’).desc())df.sort(desc(‘column’))df.sort(desc(col(‘column’)))df.sort(col(‘column’), ascending = false)