Fundamentos de big data con PySpark
Upendra Devisetty
Science Analyst, CyVerse
PySpark SQL es la librería de Spark para datos estructurados. Aporta más info sobre la estructura y el cómputo
Un DataFrame de PySpark es una colección distribuida inmutable con columnas con nombre
Diseñado para datos estructurados (p. ej., BD relacionales) y semiestructurados (p. ej., JSON)
La API de DataFrame está en Python, R, Scala y Java
En PySpark, los DataFrames aceptan consultas SQL (SELECT * from table) o métodos de expresión (df.select())
SparkContext es la puerta de entrada para crear RDDs
SparkSession ofrece un único punto de entrada para trabajar con DataFrames de Spark
Con SparkSession creas DataFrames, los registras y ejecutas SQL
En el shell de PySpark, SparkSession está disponible como spark
Dos formas de crear DataFrames en PySpark
Desde RDDs con SparkSession.createDataFrame()
Desde fuentes (CSV, JSON, TXT) con SparkSession.read
El esquema controla los datos y ayuda a optimizar consultas
El esquema define nombre de columna, tipo, valores vacíos, etc.
iphones_RDD = sc.parallelize([
("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 = spark.createDataFrame(iphones_RDD, schema=names)type(iphones_df)
pyspark.sql.dataframe.DataFrame
df_csv = spark.read.csv("people.csv", header=True, inferSchema=True)
df_json = spark.read.json("people.json")
df_txt = spark.read.txt("people.txt")
Ruta al archivo y dos parámetros opcionales
Dos parámetros opcionales
header=True, inferSchema=TrueFundamentos de big data con PySpark