Introdução ao PySpark SQL

Alguns dos programadores iniciantes não estariam cientes do PySpark SQL. Antes de passar pelo PySpark SQL primeiro, devemos ter uma idéia sobre o que é Spark SQL. Vamos começar com o Spark SQL, é um módulo do Apache Spark. O Spark SQL costumava trabalhar com dados estruturados. O PySpark SQL foi desenvolvido para dar suporte ao Python no Spark.

PySpark SQL é a colaboração do Python com o Spark SQL. É usado principalmente no processamento de dados estruturados e semiestruturados. A API fornecida por ele pode ler dados de um grande número de fontes. Essas fontes de dados podem estar em diferentes formatos de dados.

O que é o PySpark SQL?

É uma ferramenta para suportar python com Spark SQL. Foi desenvolvido para dar suporte ao Python no Spark. Para um entendimento adequado do PySpark, é necessário o conhecimento de Python, Big Data & Spark. O PySpark SQL está lentamente ganhando popularidade nos programadores de banco de dados devido a seus importantes recursos.

O PySpark SQL funciona no sistema distribuído e também é escalável, por isso é muito usado na ciência de dados. No PySpark, o SQL Machine Learning é fornecido pela biblioteca python. Essa biblioteca Python é conhecida como biblioteca de aprendizado de máquina.

Recursos do PySpark SQL

Alguns dos recursos importantes do PySpark SQL são apresentados abaixo:

  • Velocidade: é muito mais rápido que as grandes estruturas tradicionais de processamento de dados como o Hadoop.
  • Cache poderoso: O PySpark fornece uma camada de programação simples que ajuda no cache do que o cache de outras estruturas.
  • Tempo real: a computação no PySpark SQL ocorre na memória e é por isso que é em tempo real.
  • Implantação: ele pode implantar através do Hadoop ou do próprio gerenciador de cluster.
  • Poliglota: suporta programação em Scala, Java, Python e R.

Ele é usado no Big Data e onde há Big Data envolve aquele relacionado à análise de dados. É a ferramenta mais popular do mercado de Big Data Analytics.

Principais usos do PySpark SQL

A seguir, são apresentados alguns dos setores em que o Pyspark é usado na maioria:

Indústria de comércio eletrônico

No setor de comércio eletrônico, o PySpark acrescenta um papel importante. É usado para melhorar a acessibilidade do usuário, fornecendo ofertas aos clientes-alvo e anunciando a clientes genuínos. Diferentes indústrias de comércio eletrônico, como eBay, Alibaba, Flipkart, Amazon etc., usam-no para obter dados genuínos para fins de marketing.

meios de comunicação

Diferentes indústrias de mídia, como Youtube, Netflix, Amazon etc. usam o PySpark em sua maioria para processar grandes dados para disponibilizá-los aos usuários. Esse processamento de dados ocorre em tempo real para os aplicativos do lado do servidor.

Bancário

O setor bancário é outro setor importante em que o PySpark está sendo usado em um nível muito vasto. Está ajudando o setor financeiro a processar transações em tempo real para milhões de processamento de registros, propaganda para clientes genuínos, avaliação de risco de crédito, etc.

Módulos PySpark

Algumas das classes importantes e suas características são apresentadas abaixo:

  • pyspark.sql.SparkSession: essa classe permite que os programadores programem no Spark com a funcionalidade DataFrame e SQL. O SparkSession usado para criar o DataFrame, registrar o DataFrame como tabelas, armazenar em cache tabelas, executa SQL sobre tabelas.
  • pyspark.sql.DataFrame: a classe DataFrame desempenha um papel importante na coleta distribuída de dados. Esses dados agrupados em colunas nomeadas. O Spark SQL DataFrame é semelhante a uma tabela de dados relacionais. Um DataFrame pode ser criado usando os métodos SQLContext.
  • pyspark.sql.Columns: É possível criar instâncias de coluna no DataFrame usando essa classe.
  • pyspark.sql.Row: Uma linha no DataFrame pode ser criada usando esta classe.
  • pyspark.sql.GroupedData: a classe GroupedData fornece os métodos de agregação criados por groupBy ().
  • pyspark.sql.DataFrameNaFunctions: esta classe fornece a funcionalidade para trabalhar com os dados ausentes.
  • pyspark.sql.DataFrameStatFunctions: As funções estatísticas estão disponíveis nos DataFrames do Spark SQL. A funcionalidade das funções estatísticas é fornecida por esta classe.
  • pyspark.sql.functions: Muitas funções internas do Spark estão disponíveis para trabalhar com os DataFrames. Algumas das funções internas são fornecidas abaixo:
Métodos incorporadosMétodos incorporados
abs (col)localizar (substr, str, pos = 1)
acos (col)log (arg1, arg2 = nenhum)
add_months (início, meses)log10 (col)
approxCountDistinct (col, res = nenhum)log1p (col)
matriz ((colunas))log2 (col)
array_contains (col, value)inferior (col)
asc (col)ltrim (col)
ascii (col)max (col)
asin (col)md5 (col)
numamédia (col)
atan2min (col)
médiaminuto (col)
base64monotonically_increasing_id ()
binmês (col)
bitwiseNotmonths_between (date1, date2)
Difusãonanvl (col1, col2)
Broundnext_day (date, dayOfWeek)
cbrtntile (n)
tetopercent_rank ()
coalescer ((col))posexplode (col)
col (col)pow (col1, col2)
lista_de_coleta (col)quarto (col)
collect_set (col)radianos (col)
coluna (col)rand (semente = Nenhuma
concat (* cols)randn (semente = Nenhuma)
concat_ws (set, * col)classificação()
conv (col, fromBase, toBase)regexp_extract (str, padrão, idx)
corr (col1, col2)regexp_replace (str, padrão, substituição)
cos (col)repetir (col, n)
cosh (col)reverso (col)
contagem (col)rint (col)
countDistinct (col, * cols)round (col, escala = 0)
covar_pop (col1, col2)row_number ()
covar_samp (col1, col2)rpad (col, len, pad)
crc32 (col)rtrim (col)
create_map (* cols)segundo (col)
cume_dist ()sha1 (col)
data atual()sha2 (col, numBits)
current_timestamp ()shiftLeft (col, numBits)
date_add (início, dias)shiftRight (col, numBits)
date_format (data, formato)shiftRightUnsigned (col, numBits)
date_sub (início, dias)signum (col)
datado (final, início)sin (col)
diamês (col)sinh (col)
dia do ano (col)tamanho (col)
decodificar (col, charset)assimetria (col)
graus (col)matriz de classificação (col, asc = True)
dense_rank ()soundex (col)
desc (col)spark_partition_id ()
codificar (col, charset)dividir (str, padrão)
exp (col)sqrt (col)
explodir (col)stddev (col)
expm1 (col)stddev_pop (col)
expr (str)stddev_samp (col)
fatorial (col)struct (* cols)
primeiro (col, ignorantes = falso)substring (str, pos, len)
chão (col)substring_index (str, delim, count)
format_number (col, d)soma (col)
format_string (formato, * colunas)sumDistinct (col)
from_json (col, esquema, opções = ())bronzeado (col)
from_unixtime (registro de data e hora, formato = 'aaaa-MM-dd HH: mm: ss')toDegrees (col)
from_utc_timestamp (timestamp, tz)toRadians (col)
get_json_object (col, caminho)to_date (col)
maior (* cols)to_json (col, opções = ())
agrupamento (col)to_utc_timestamp (timestamp, tz)
grouping_id (* cols)translate (srcCol, correspondência, substituição)
hash (* cols)guarnição (col)
hex (cols)trunc (data, formato)
hora (col)udf (f, returnType = StringType)
hypot (col1, col2)unbase64 (col)
initcap (col)unhex (col)
input_file_name ()unix_timestamp (carimbo de data / hora = Nenhum, formato = 'aaaa-MM-dd HH: mm: ss')
instr (str, substr)superior (col)
isnan (col)var_pop (col)
isnull (col)var_samp (col)
json_tuple (col, * campos)variação (col)
curtose (col)fim de semana (col)
lag (col, contagem = 1, padrão = Nenhum)quando (condição, valor)
last (col, ignorenulls = False)window (timeColumn, windowDuration, slideDuration = None, startTime = None)
last_day (data)ano (col)
lead (col, count = 1, padrão = None)menos (* cols), lit (col)
comprimento (col)levenshtein (esquerda, direita)

pyspark.sql.types: esses tipos de classe usados ​​na conversão de tipos de dados. Usando esta classe, um objeto SQL pode ser convertido em um objeto Python nativo.

  • pyspark.sql.streaming: essa classe lida com todas as consultas executadas em segundo plano. Todos esses métodos usados ​​no streaming são sem estado. As funções internas fornecidas acima estão disponíveis para trabalhar com os quadros de dados. Essas funções podem ser usadas consultando a biblioteca de funções.
  • pyspark.sql.Window: Todos os métodos fornecidos por esta classe podem ser usados ​​para definir e trabalhar com janelas em DataFrames.

Conclusão

É uma das ferramentas utilizadas na área de Inteligência Artificial e Machine Learning. É usado por mais e mais empresas para análise e aprendizado de máquina. Profissionais qualificados nele terão mais demanda no futuro próximo.

Artigos recomendados

Este é um guia para o PySpark SQL. Aqui discutimos o que é o pyspark SQL, seus recursos, principais usos, módulos e métodos internos. Você também pode consultar os seguintes artigos para saber mais -

  1. Spark DataFrame
  2. Perguntas da entrevista do Spark
  3. Função Data SQL
  4. Cláusula SQL HAVING
  5. Arquitetura Apache Spark com duas implementações
  6. Como usar o DISTINCT no Oracle?