Introducción a PySpark SQL

Algunos de los programadores novatos no estarían al tanto de PySpark SQL. Antes de pasar por PySpark SQL, primero deberíamos tener una idea sobre qué es Spark SQL. Comencemos con Spark SQL, es un módulo de Apache Spark. Spark SQL solía trabajar con datos estructurados. PySpark SQL está desarrollado para admitir Python en Spark.

PySpark SQL es la colaboración de Python con Spark SQL. Se utiliza principalmente en el procesamiento de datos estructurados y semiestructurados. La API que proporciona puede leer datos de una gran cantidad de fuentes. Estas fuentes de datos pueden estar en diferentes formatos de datos.

¿Qué es PySpark SQL?

Es una herramienta para soportar python con Spark SQL. Está desarrollado para admitir Python en Spark. Para una comprensión adecuada de PySpark, se requiere conocimiento de Python, Big Data y Spark. PySpark SQL está ganando popularidad lentamente en los programadores de bases de datos debido a sus características importantes.

PySpark SQL funciona en el Sistema distribuido y también es escalable por eso es muy utilizado en ciencia de datos. En PySpark SQL Machine Learning es proporcionado por la biblioteca Python. Esta biblioteca de Python se conoce como biblioteca de aprendizaje automático.

Características de PySpark SQL

Algunas de las características importantes de PySpark SQL se detallan a continuación:

  • Velocidad: es mucho más rápido que los marcos tradicionales de procesamiento de datos grandes como Hadoop.
  • Caché de gran alcance: PySpark proporciona una capa de programación simple que ayuda en el almacenamiento en caché que el almacenamiento en caché de otros marcos.
  • Tiempo real: la computación en PySpark SQL se lleva a cabo en la memoria, por eso es en tiempo real.
  • Implementación: se puede implementar a través de Hadoop o del propio administrador de clústeres.
  • Polyglot: admite programación en Scala, Java, Python y R.

Se utiliza en Big data y donde hay Big data implica lo relacionado con el análisis de datos. Es la herramienta más popular en el mercado de Big Data Analytics.

Usos principales de PySpark SQL

A continuación se presentan algunos de los sectores donde se utiliza Pyspark en su mayoría:

Industria de comercio electrónico

En la industria del comercio electrónico, PySpark agrega un papel importante. Se utiliza para mejorar la accesibilidad del usuario, brindando ofertas a los clientes objetivo, publicitando a clientes genuinos. Las diferentes industrias de comercio electrónico como eBay, Alibaba, Flipkart, Amazon, etc. lo utilizan para obtener datos genuinos con fines de marketing.

Medios de comunicación

Diferentes industrias de medios como Youtube, Netflix, Amazon, etc. utilizan PySpark en su mayoría para procesar grandes datos y ponerlos a disposición de los usuarios. Este procesamiento de datos tiene lugar en tiempo real para las aplicaciones del lado del servidor.

Bancario

La banca es otro sector importante donde PySpark se está utilizando en un nivel muy vasto. Está ayudando al sector financiero a procesar transacciones en tiempo real para millones de procesamiento de registros, publicidad a clientes genuinos, evaluación de riesgo de crédito, etc.

Módulos PySpark

Algunas de las clases importantes y sus características se dan a continuación:

  • pyspark.sql.SparkSession: esta clase permite a los programadores programar en Spark con DataFrame y la funcionalidad SQL. SparkSession se usa para crear DataFrame, registrar DataFrame como tablas, tablas de caché, ejecuta SQL sobre tablas.
  • pyspark.sql.DataFrame: la clase DataFrame juega un papel importante en la recopilación distribuida de datos. Estos datos agrupados en columnas con nombre. Spark SQL DataFrame es similar a una tabla de datos relacionales. Se puede crear un DataFrame utilizando los métodos SQLContext.
  • pyspark.sql.Columns: se pueden crear instancias de columna en DataFrame usando esta clase.
  • pyspark.sql.Row: se puede crear una fila en DataFrame usando esta clase.
  • pyspark.sql.GroupedData: la clase GroupedData proporciona los métodos de agregación creados por groupBy ().
  • pyspark.sql.DataFrameNaFunctions: esta clase proporciona la funcionalidad para trabajar con los datos faltantes.
  • pyspark.sql.DataFrameStatFunctions: las funciones estadísticas están disponibles con los DataFrames de Spark SQL. La funcionalidad de las funciones estadísticas es proporcionada por esta clase.
  • pyspark.sql.functions: muchas funciones integradas en Spark están disponibles para trabajar con los marcos de datos. Algunas de las funciones integradas se dan a continuación:
Métodos incorporadosMétodos incorporados
abs (col)localizar (substr, str, pos = 1)
acos (col)log (arg1, arg2 = Ninguno)
add_months (inicio, meses)log10 (col)
approxCountDistinct (col, res = none)log1p (col)
matriz ((cols))log2 (col)
array_contains (col, valor)inferior (col)
asc (col)ltrim (col)
ascii (col)max (col)
asin (col)md5 (col)
un bronceadomedia (col)
atan2min (col)
promediominuto (col)
base64monotonically_increasing_id ()
compartimientomes (col)
bit a bitmeses_entre (fecha1, fecha2)
Transmitirnanvl (col1, col2)
Broundnext_day (date, dayOfWeek)
cbrtntile (n)
fortificar techopercent_rank ()
fusionarse ((col))posexplode (col)
col (col)pow (col1, col2)
collect_list (col)cuarto (col)
collect_set (col)radianes (col)
columna (col)rand (semilla = Ninguno
concat (* cols)randn (semilla = Ninguno)
concat_ws (sep, * col)rango()
conv (col, fromBase, toBase)regexp_extract (str, patrón, idx)
corr (col1, col2)regexp_replace (str, patrón, reemplazo)
cos (col)repetir (col, n)
cosh (col)reverso (col)
contar (col)rint (col)
countDistinct (col, * cols)redondo (col, escala = 0)
covar_pop (col1, col2)numero de fila()
covar_samp (col1, col2)rpad (col, len, pad)
crc32 (col)rtrim (col)
create_map (* cols)segundo (col)
cume_dist ()sha1 (col)
fecha actual()sha2 (col, numBits)
fecha y hora actual()shiftLeft (col, numBits)
date_add (inicio, días)shiftRight (col, numBits)
date_format (fecha, formato)shiftRightUnsigned (col, numBits)
date_sub (inicio, días)signum (col)
dateiff (fin, inicio)pecado (col)
dayofmonth (col)sinh (col)
día de año (col)tamaño (col)
decodificar (col, juego de caracteres)asimetría (col)
grados (col)sort_array (col, asc = True)
dense_rank ()soundex (col)
desc (col)spark_partition_id ()
codificar (col, juego de caracteres)división (str, patrón)
exp (col)sqrt (col)
explotarstddev (col)
expm1 (col)stddev_pop (col)
expr (str)stddev_samp (col)
factorial (col)struct (* cols)
primero (col, ignorenulls = False)subcadena (str, pos, len)
piso (col)substring_index (str, delim, count)
número_formato (col, d)suma (col)
cadena_formato (formato, * cols)sumDistinct (col)
from_json (col, esquema, opciones = ())tan (col)
from_unixtime (marca de tiempo, formato = 'aaaa-MM-dd HH: mm: ss')toDegrees (col)
from_utc_timestamp (marca de tiempo, tz)toRadians (col)
get_json_object (col, ruta)to_date (col)
mayor (* cols)to_json (col, opciones = ())
agrupación (col)to_utc_timestamp (marca de tiempo, tz)
grouping_id (* cols)traducir (srcCol, coincidencia, reemplazar)
hash (* cols)recortar (col)
hex (cols)trunc (fecha, formato)
hora (col)udf (f, returnType = StringType)
hipot (col1, col2)unbase64 (col)
initcap (col)unhex (col)
input_file_name ()unix_timestamp (marca de tiempo = Ninguno, 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)varianza (col)
curtosis (col)weekofyear (col)
retraso (col, conteo = 1, predeterminado = Ninguno)cuando (condición, valor)
último (col, ignorenulls = False)ventana (timeColumn, windowDuration, slideDuration = None, startTime = None)
last_day (fecha)año (col)
lead (col, count = 1, default = None)mínimo (* cols), encendido (col)
longitud (col)levenshtein (izquierda, derecha)

pyspark.sql.types: estos tipos de clase utilizados en la conversión de tipos de datos. Con esta clase, un objeto SQL se puede convertir en un objeto nativo de Python.

  • pyspark.sql.streaming: esta clase maneja todas las consultas que se ejecutan continúa en segundo plano. Todos estos métodos utilizados en la transmisión no tienen estado. Las funciones incorporadas indicadas anteriormente están disponibles para trabajar con los marcos de datos. Estas funciones se pueden utilizar haciendo referencia a la biblioteca de funciones.
  • pyspark.sql.Window: todos los métodos proporcionados por esta clase se pueden usar para definir y trabajar con ventanas en DataFrames.

Conclusión

Es una de las herramientas utilizadas en el área de Inteligencia Artificial y Aprendizaje Automático. Cada vez más empresas lo utilizan para análisis y aprendizaje automático. Los profesionales calificados en él tendrán más demanda en el futuro próximo.

Artículos recomendados

Esta es una guía de PySpark SQL. Aquí discutimos qué es pyspark SQL, sus características, usos principales, módulos y métodos integrados. También puede consultar los siguientes artículos para obtener más información:

  1. Spark DataFrame
  2. Preguntas de la entrevista de Spark
  3. Función de fecha SQL
  4. Cláusula HAVING de SQL
  5. Arquitectura Apache Spark con dos implementaciones
  6. ¿Cómo utilizar DISTINCT en Oracle?