0% encontró este documento útil (0 votos)
110 vistas21 páginas

Introducción a PySpark y SQL

PySpark permite el uso de Apache Spark con Python. Proporciona velocidad y poder de cómputo similar a Scala mediante la API de DataFrames de PySpark, la cual es similar a Pandas y Scikit-learn. Los DataFrames en PySpark soportan consultas SQL y métodos para seleccionar y resumir datos de forma eficiente desde fuentes como CSV, JSON y archivos de texto.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
110 vistas21 páginas

Introducción a PySpark y SQL

PySpark permite el uso de Apache Spark con Python. Proporciona velocidad y poder de cómputo similar a Scala mediante la API de DataFrames de PySpark, la cual es similar a Pandas y Scikit-learn. Los DataFrames en PySpark soportan consultas SQL y métodos para seleccionar y resumir datos de forma eficiente desde fuentes como CSV, JSON y archivos de texto.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd

PySpark: Spark with Python

Características Apache Spark framework


Distributed cluster computing framework

Eficiencia en cálculo para largos datasets in-memory

Procesamiento de datos ultarápido.

Soporte para Java, Scala, Python, R and SQL

Computo Paralelo con grandes datasets

Optimizado para Big Data


Apache Spark Componentes
Modos de Despliegue con Spark
Modo Local : Equipos individuales como una laptop
Local model convenient for testing, debugging and demonstration

Modo Cluster : Equipos para producción

Grupo de computadora conectadas como una gran


computadora para incrementar el rendimientos
Machine Learning. MLlib
Spark permite a las personas crear e
implementar aplicaciones de aprendizaje
automático escalables mucho más rápido de
lo que lo habían hecho anteriormente. [¿Por
qué?] Su flexibilidad y facilidad de
programación significaba que podía crear
aplicaciones de aprendizaje automático,
entrenar modelos con datos masivos muy,
muy rápidamente. Eso ha generado un gran
interés en el ecosistema ---- Mike Olson
(Cofundador de Cloudera)
PySpark: Spark with
Python
B IG DATA F U N DA M E N TA L S W ITH P
Y S PA R K

Upendra Devisetty
Science Analyst,
CyVerse
Resumen de PySpark
Apache Spark desarrollado en Scala

Soporta Python con Spark,

Velocidad y poder de cálculo similar a Scala

La API de PySpark APIs es similar a Pandas y Scikit-learn


Comprendiendo SparkContext
SparkContext es el punto de entrada para usar Spark

Un punto de entrada es una conexión a un cluster Spark cluster

Es como la llave de una casa

PySpark tiene un contexto por defecto : sc


Introducción a
PySpark DataFrames

Upendra Devisetty
Science Analyst, CyVerse
Que es PySpark DataFrames?
PySpark SQL is una Spark

PySpark DataFrame colección de datos distribuidos con nombres de columnas.

Diseñado para el procesamiento de datos estructurados (e.g relational database) y semi-estructured data (e.g

JSON)

Dataframe API disponible en Python, R, Scala, and Java

DataFrames en PySpark soportan consultas SQL ( SELECT * from table ) or métodos ([Link]() )
SparkSession - Entry point for DataFrame API
SparkContext is laentradaprincipal para crear RDDs

SparkSession proporciona un punto simple de entrada para interactuar con Spark DataFrames SparkSession is usado para

crear DataFrame, registrar DataFrames, ejecutar SQL queries

SparkSession está disponiblecomo PySpark: spark


Creando DataFrames en PySpark
Dos métodos
From existing RDDs using SparkSession's createDataFrame() method

From various data sources (CSV, JSON, TXT) using SparkSession's read method Schema

controls the data and helps DataFrames to optimize queries

El Schema muestra información : nombre column name, tipo de data, valores vacíos etc.,
Creando un DataFrame desde RDD
iphones_RDD = [Link]([
("XS", 2018, 5.65, 2.79, 6.24),
("XR", 2018, 5.94, 2.98, 6.84),
("X10", 2017, 5.65, 2.79, 6.13),
("8Plus", 2017, 6.23, 3.07, 7.12)
])

names = ['Model', 'Year', 'Height', 'Width', 'Weight']

iphones_df = [Link](iphones_RDD, schema=names)

type(iphones_df)

[Link]
Creando DataFrame desde un
CSV/JSON/TXT
df_csv = [Link]("[Link]", header=True, inferSchema=True)

df_json = [Link]("[Link]", header=True, inferSchema=True)

df_txt = [Link]("[Link]", header=True, inferSchema=True)

Path :considerarutadelarchivodedatos

Hay otros 2 parámetros opcionales


header=True inferSchema=True
,
DataFrames usando
PySpark SQL

Upendra Devisetty
Science Analyst, CyVerse
DataFrame API vs SQL queries
In PySpark puede trabajar con SparkSQL para DataFrame conla API de SQL queries

Las operaioness con DataFrames puede ser usadas con SQL queries
Ejecutando SQL Queries
SparkSession sql() ejecuta SQL query

Ejemplos

[Link]("table1")

df2 = [Link]("SELECT field1, field2 FROM


table1") [Link]()

[Row(f1=1, f2='row1'), Row(f1=2, f2='row2'), Row(f1=3,


f2='row3')]
SQL query
test_df.createOrReplaceTempView("test_table")

query = '''SELECT Product_ID FROM test_table'''

test_product_df = [Link](query)
test_product_df.show(5)

+----------+
|Product_ID|
+----------+
| P00069042|
| P00248942|
| P00087842|
| P00085442|
| P00285442|
+----------+
Sumarizando datos con SQL queries
test_df.createOrReplaceTempView("test_table")

query = '''SELECT Age, max(Purchase) FROM test_table GROUP BY Age'''

[Link](query).show(5)

+-----+-------------+
| Age|max(Purchase)|
+-----+-------------+
|18-25| 23958|
|26-35| 23961|
| 0-17| 23955|
|46-50| 23960|
|51-55| 23960|
+-----+-------------+
only showing top 5 rows
Filtrando columns usando SQL queries
test_df.createOrReplaceTempView("test_table")

query = '''SELECT Age, Purchase, Gender FROM table1 WHERE Purchase > 20000 AND Gender == "F"'''

[Link](query).show(5)

+-----+--------+------+
| Age|Purchase|Gender|
+-----+--------+------+
|36-45| 23792| F|
|26-35| 21002| F|
|26-35| 23595| F|
|26-35| 23341| F|
|46-50| 20771| F|
+-----+--------+------+
only showing top 5 rows
Demo…

También podría gustarte