PySpark Dataframe Tutorial - PySpark Programming with Dataframes



Neste blog de tutorial do PySpark Dataframe, você aprenderá sobre transformações e ações no Apache Spark com vários exemplos.

Dataframes é a palavra da moda na indústria atualmente. As pessoas tendem a usá-lo com linguagens populares usadas para Análise de Dados, como Python, Scala e R.Além disso, com a necessidade evidente de lidar com análises complexas e tarefas de munging para Big Data, Python para Spark ou tornou-se uma das habilidades mais procuradas na indústria hoje.Então, por que todo mundo está usando tanto? Vamos entender isso com nosso Tutorial de Dataframe do PySpark blog. Neste blog, estarei cobrindo os seguintes tópicos:





Tutorial de Dataframe do PySpark: O que são Dataframes?

Os dataframes geralmente se referem a uma estrutura de dados, que é de natureza tabular. Ele representa linhas, cada uma das quais consiste em várias observações. As linhas podem ter uma variedade de formatos de dados ( Heterogêneo ), enquanto uma coluna pode ter dados do mesmo tipo ( Homogêneo ) Os quadros de dados geralmente contêm alguns metadados além dos dados, por exemplo, nomes de colunas e linhas.

Dataframe-Pyspark-Dataframe-Tutorial



Podemos dizer que Dataframes nada mais são do que Estrutura de Dados 2-Dimensional, semelhante a uma tabela SQL ou planilha. Agora, vamos seguir em frente com este PySpark Dataframe Tutorial e entender por que exatamente precisamos do Pyspark Dataframe?

Por que precisamos de Dataframes?

1. Processamento de dados estruturados e semiestruturados



Dataframessão projetados para processarpara ampla coleta de dados estruturados e semiestruturados . As observações no Spark DataFrame são organizadas em colunas nomeadas, o que ajuda o Apache Spark a entender o esquema de um DataFrame. Isso ajuda o Spark a otimizar o plano de execução nessas consultas. Ele também pode lidar com Petabytes De dados.

2.S licitação e dados

Quadro de dados AIPs geralmente oferecem suporte a métodos elaborados para fatiar e picar os dados. IncluiOperaçãons como “selecionar” linhas, colunas e células por nome ou número, filtrar linhas, etc. Os dados estatísticos são geralmente muito confusos e contêm muitos valores ausentes e errados e violações de intervalo. Portanto, um recurso extremamente importante dos quadros de dados é o gerenciamento explícito dos dados ausentes.

3. Fontes de dados

O DataFrame oferece suporte para uma ampla variedade de formatos e fontes de dados. Veremos isso mais tarde neste blog do Pyspark Dataframe Tutorial. Eles podem obter dados de várias fontes.

4. Suporte para vários idiomas

Possui suporte de API para diferentes linguagens como Python, R, Scala, Java,o que torna mais fácil ser usado por pessoas com diferentes experiências de programação.

Inscreva-se em nosso canal do youtube para obter novas atualizações ..!

Recursos de Dataframes

  • Dataframes são Distribuído na natureza, o que a torna uma estrutura de dados tolerante a falhas e altamente disponível.
  • Avaliação preguiçosa é uma estratégia de avaliação que mantém a avaliação de uma expressão até que seu valor seja necessário. Isso evita avaliações repetidas. A avaliação lenta no Spark significa que a execução não começará até que uma ação seja disparada. No Spark, a imagem da avaliação lenta surge quando ocorrem as transformações do Spark.
  • Dataframes são Imutável na natureza. Por imutável, quero dizer que é um objeto cujo estado não pode ser modificado depois de criado.Mas podemos transformarEstávalores aplicandoum certotransformação, como em RDDs.

Fontes de Dataframe PySpark

Dataframes no Pyspark podem ser criados de várias maneiras:

Os dados podem ser carregados por meio de um CSV, JSON, XML ou um arquivo Parquet. Ele também pode ser criado usando um existente RDD e por meio de qualquer outro banco de dados, como Colmeia ou Cassandra também. Ele também pode receber dados do HDFS ou do sistema de arquivos local.

Criação de Dataframe

Vamos seguir em frente com este blog do PySpark Dataframe Tutorial e entender como criar Dataframes.

Vamos criar instâncias de Employee e Department.

from pyspark.sql import * Employee = Row ('firstName', 'lastName', 'email', 'salary') employee1 = Employee ('Basher', 'armbrust', 'bash@edureka.co', 100000) employee2 = Funcionário ('Daniel', 'meng', 'daniel@stanford.edu', 120000) funcionário3 = Funcionário ('Muriel', Nenhum, 'muriel@waterloo.edu', 140000) funcionário4 = Funcionário ('Rachel', 'wendell ',' rach_3@edureka.co ', 160000) funcionário5 = Funcionário (' Zach ',' galifianakis ',' zach_g@edureka.co ', 160000) imprimir (Funcionário [0]) imprimir (funcionário3) departamento1 = Linha (id = '123456', nome = 'RH') departamento2 = Linha (id = '789012', nome = 'OPS') departamento3 = Linha (id = '345678', nome = 'FN') departamento4 = Linha (id = ' 901234 ', nome =' DEV ')

A seguir, criaremos uma instância DepartmentWithEmployees de Employee e Departments

departamentoWithEmployees1 = Row (department = department1, funcionários = [employee1, employee2, employee5]) departmentWithEmployees2 = Row (department = department2, funcionários = [employee3, employee4]) departmentWithEmployees3 = Row (department = department3, funcionários = [employee1, employee4, employee3 ]) departamentoWithEmployees4 = Row (department = department4, staff = [employee2, employee3])

Vamos criar nosso Dataframe a partir da lista de linhas

departamentosWithEmployees_Seq = [departmentWithEmployees1, departmentWithEmployees2] dframe = spark.createDataFrame (departmentWithEmployees_Seq) display (dframe) dframe.show ()

Pyspark Dataframes Exemplo 1: Conjunto de dados da Copa do Mundo FIFA

Aqui, pegamos o conjunto de dados dos jogadores da Copa do Mundo FIFA. Vamos carregar esses dados que estão no formato CSVdentro dedataframe e então aprenderemos sobre as diferentes transformações e ações que podem ser realizadas neste dataframe.

Lendo dados do arquivo CSV

Vamos carregar os dados de um arquivo CSV. Aqui vamos usar o spark.read.csv método para carregar os dados em um dataframe fifa_df. O método real é spark.read.format [csv / json] .

fifa_df = spark.read.csv ('path-of-file / fifa_players.csv', inferSchema = True, header = True) fifa_df.show ()

Esquema de Dataframe

Para dar uma olhada no esquema ie. a estrutura do dataframe, vamos usar o printSchema método. Isso nos dará as diferentes colunas em nosso dataframe junto com o tipo de dados e as condições anuláveis ​​para essa coluna específica.

fifa_df.printSchema ()

Nomes e contagem de colunas (linhas e colunas)

Quando queremos dar uma olhada nos nomes e na contagem do número de linhas e colunas de um determinado Dataframe, usamos os seguintes métodos.

fifa_df.columns // Nomes das colunas fifa_df.count () // Contagem de linhas len (fifa_df.columns) // Contagem de colunas

37784 8

Descrevendo uma coluna particular

Se quisermos dar uma olhada no resumo de qualquer coluna particular de um Dataframe, usamos o descreve método. Este método nos dá o resumo estatístico da coluna dada; se não for especificado, ele fornece o resumo estatístico do dataframe.

como fazer lista ligada em c
fifa_df.describe ('Nome do treinador'). show () fifa_df.describe ('Posição'). show ()

Seleção de várias colunas

Se quisermos selecionar colunas específicas do dataframe, usamos o selecionar método.

fifa_df.select ('Nome do jogador', 'Nome do treinador'). show ()

Seleção de colunas múltiplas distintas

fifa_df.select ('Nome do jogador', 'Nome do treinador'). distinto (). mostrar ()

Filtrando Dados

Para filtrar os dados, de acordo com a condição especificada, usamos o filtro comando. Aqui, estamos filtrando nosso dataframe com base na condição de que Match ID deve ser igual a 1096 e, em seguida, estamos calculando quantos registros / linhas existem na saída filtrada.

fifa_df.filter (fifa_df.MatchID == '1096'). show () fifa_df.filter (fifa_df.MatchID == '1096'). count () // para obter a contagem

Filtrando dados (vários parâmetros)

Podemos filtrar nossos dados com base em várias condições (AND ou OR)

fifa_df.filter ((fifa_df.Position == 'C') && (fifa_df.Event == 'G40' ')). show ()

Classificação de dados (OrderBy)

Para classificar os dados, usamos o Ordenar por método. Por padrão, ele é classificado em ordem crescente, mas também podemos alterá-lo para ordem decrescente.

fifa_df.orderBy (fifa_df.MatchID) .show ()

PySpark Dataframes Exemplo 2: conjunto de dados Superheros

Carregando os dados

Aqui, carregaremos os dados da mesma maneira que fizemos anteriormente.

Superhero_df = spark.read.csv ('path-of file / superheros.csv', inferSchema = True, header = True) Superhero_df.show (10)

Filtrando os Dados

Superhero_df.filter (Superhero_df.Gender == 'Masculino'). Count () // Contagem de heróis masculinos Superhero_df.filter (Superhero_df.Gender == 'Feminino'). Count () // Contagem de heróis femininos

Agrupando os Dados

GroupBy é usado para agrupar o dataframe com base na coluna especificada. Aqui, estamos agrupando o dataframe com base na coluna Race e depois com o contagem função, podemos encontrar a contagem de determinada raça.

Race_df = Superhero_df.groupby ('Race') .count () .show ()

Execução de consultas SQL

Também podemos passar consultas SQL diretamente para qualquer dataframe, para isso precisamos criar uma tabela a partir do dataframe usando o registerTempTable método e, em seguida, use o sqlContext.sql () para passar as consultas SQL.

Superhero_df.registerTempTable ('superhero_table') sqlContext.sql ('select * from superhero_table'). Show ()

sqlContext.sql ('selecionar distinto (Eye_color) de superhero_table'). show ()

sqlContext.sql ('selecionar distinto (Eye_color) de superhero_table'). count ()

2,3

sqlContext.sql ('select max (Weight) from superhero_table'). show ()

E com isso, chegamos ao fim deste Tutorial de Dataframe do PySpark.

Então é isso, pessoal!

Espero que vocês tenham uma ideia do que é o PySpark Dataframe, por que é usado na indústria e seus recursos neste blog de tutorial do PySpark Dataframe. Parabéns, você não é mais um novato em Dataframes. Se você quiser saber mais sobre o PySpark e entender os diferentes casos de uso da indústria, dê uma olhada em nosso Spark com Python e Tutorial PySpark Blog.