Comparteix a través de


SparkSession

Punto de entrada para programar Spark con la API Dataset y DataFrame. Se puede usar SparkSession para crear dataframes, registrar dataframes como tablas, ejecutar SQL sobre tablas, tablas de caché y leer archivos parquet.

Sintaxis

from pyspark.sql import SparkSession

spark = SparkSession.builder.getOrCreate()

Propiedades

Propiedad Descripción
version Versión de Spark en la que se ejecuta esta aplicación.
conf Interfaz de configuración en tiempo de ejecución para Spark.
catalog Interfaz a través de la cual el usuario puede crear, quitar, modificar o consultar bases de datos subyacentes, tablas, funciones, etc.
udf Devuelve una UDFRegistration para el registro de UDF.
udtf Devuelve un UDTFRegistration para el registro UDTF.
dataSource Devuelve una clase DataSourceRegistration para el registro del origen de datos.
profile Devuelve un perfil para la generación de perfiles de rendimiento y memoria.
sparkContext Devuelve el sparkContext subyacente. Solo modo clásico.
read Devuelve un DataFrameReader que se puede usar para leer datos como dataFrame.
readStream Devuelve un DataStreamReader que se puede usar para leer flujos de datos como dataFrame de streaming.
streams Devuelve un Objeto StreamingQueryManager que permite administrar todas las consultas de streaming activas.
tvf Devuelve una tableValuedFunction para llamar a funciones con valores de tabla (TVF).

Methods

Método Descripción
createDataFrame(data, schema, samplingRatio, verifySchema) Crea un DataFrame a partir de un RDD, una lista, un DataFrame de pandas, un ndarray numpy o una tabla pyarrow.
sql(sqlQuery, args, **kwargs) Devuelve un dataframe que representa el resultado de la consulta especificada.
table(tableName) Devuelve la tabla especificada como dataframe.
range(start, end, step, numPartitions) Crea un DataFrame con una sola columna LongType denominada id, que contiene elementos de un intervalo.
newSession() Devuelve un nuevo SparkSession con SQLConf independiente, vistas temporales registradas y UDF, pero sparkContext compartido y caché de tablas. Solo modo clásico.
getActiveSession() Devuelve la sparkSession activa para el subproceso actual.
active() Devuelve el sparkSession activo o predeterminado para el subproceso actual.
stop() Detiene sparkContext subyacente.
addArtifacts(*path, pyfile, archive, file) Agrega artefactos a la sesión de cliente.
interruptAll() Interrumpe todas las operaciones de esta sesión que se ejecutan actualmente en el servidor.
interruptTag(tag) Interrumpe todas las operaciones de esta sesión con la etiqueta especificada.
interruptOperation(op_id) Interrumpe una operación de esta sesión con el operationId especificado.
addTag(tag) Agrega una etiqueta que se asignará a todas las operaciones iniciadas por este subproceso en esta sesión.
removeTag(tag) Quita una etiqueta agregada anteriormente para las operaciones iniciadas por este subproceso.
getTags() Obtiene las etiquetas establecidas actualmente para que se asignen a todas las operaciones iniciadas por este subproceso.
clearTags() Borra las etiquetas de operación del subproceso actual.

Generador

Método Descripción
config(key, value) Establece una opción de configuración. Las opciones se propagan automáticamente a la configuración propia de SparkConf y SparkSession.
master(master) Establece la dirección URL maestra de Spark a la que se va a conectar.
remote(url) Establece la dirección URL remota de Spark para conectarse a través de Spark Connect.
appName(name) Establece un nombre para la aplicación, que se mostrará en la interfaz de usuario web de Spark.
enableHiveSupport() Habilita la compatibilidad con Hive, incluida la conectividad a un metastore de Hive persistente.
getOrCreate() Obtiene una sparkSession existente o, si no hay ninguna existente, crea una nueva basada en las opciones establecidas en este generador.
create() Crea una nueva sparkSession.

Ejemplos

spark = (
    SparkSession.builder
        .master("local")
        .appName("Word Count")
        .config("spark.some.config.option", "some-value")
        .getOrCreate()
)
spark.sql("SELECT * FROM range(10) where id > 7").show()
+---+
| id|
+---+
|  8|
|  9|
+---+
spark.createDataFrame([('Alice', 1)], ['name', 'age']).show()
+-----+---+
| name|age|
+-----+---+
|Alice|  1|
+-----+---+
spark.range(1, 7, 2).show()
+---+
| id|
+---+
|  1|
|  3|
|  5|
+---+