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 incorporados | Mé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) |
numa | média (col) |
atan2 | min (col) |
média | minuto (col) |
base64 | monotonically_increasing_id () |
bin | mês (col) |
bitwiseNot | months_between (date1, date2) |
Difusão | nanvl (col1, col2) |
Bround | next_day (date, dayOfWeek) |
cbrt | ntile (n) |
teto | percent_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 -
- Spark DataFrame
- Perguntas da entrevista do Spark
- Função Data SQL
- Cláusula SQL HAVING
- Arquitetura Apache Spark com duas implementações
- Como usar o DISTINCT no Oracle?