Compartir vía


Administración de paquetes de ámbito de sesión

Además de los paquetes de nivel de grupo, también puede especificar bibliotecas de ámbito de sesión al comienzo de una sesión del cuaderno. Las bibliotecas de ámbito de sesión permiten especificar y usar los paquetes de Python, jar y R en una sesión de cuaderno.

Cuando se usan bibliotecas de ámbito de sesión, es importante tener en cuenta lo siguiente:

  • Al instalar las bibliotecas de ámbito de sesión, solo el cuaderno actual tiene acceso a las bibliotecas especificadas.
  • Estas bibliotecas no afectan a otras sesiones o trabajos que usen el mismo grupo de Spark.
  • Estas bibliotecas se instalan sobre el entorno de ejecución base y las bibliotecas de nivel de grupo, y tienen la prioridad más alta.
  • Las bibliotecas de R con ámbito de sesión no se conservan entre sesiones.

Paquetes de Python con ámbito de sesión

Administración de paquetes de Python con ámbito de sesión mediante el archivo environment.yml

Para especificar los paquetes de ámbito de sesión de Python:

  1. Vaya al grupo de Spark seleccionado y asegúrese de que ha habilitado las bibliotecas de nivel de sesión. Para habilitar esta configuración, vaya a la pestaña Administrar>Grupo de Apache Spark>Paquetes. Captura de pantalla de la habilitación de paquetes de sesión.
  2. Una vez aplicada la configuración, puede abrir un cuaderno y seleccionar Configurar sesión>Paquetes. Captura de pantalla de la especificación de paquetes de sesión. Captura de pantalla de la carga del archivo Yml.
  3. Aquí puede cargar un archivo environment.yml de Conda para instalar o actualizar paquetes dentro de una sesión. Las bibliotecas especificadas están presentes una vez que se inicia la sesión. Estas bibliotecas ya no estarán disponibles una vez finalizada la sesión.

Administración de paquetes de Python con ámbito de sesión mediante comandos %pip y %conda

Puede usar los comandos %pip y %conda populares para instalar bibliotecas de terceros adicionales o bibliotecas personalizadas durante la sesión del cuaderno de Apache Spark. En esta sección, usamos comandos %pip para mostrar varios escenarios comunes.

Nota

  • Se recomienda colocar los comandos %pip y %conda en la primera celda del cuaderno si desea instalar nuevas bibliotecas. El intérprete de Python se reiniciará después de que la biblioteca de nivel de sesión se administre para que los cambios sean efectivos.
  • Estos comandos de administración de bibliotecas de Python se deshabilitarán al ejecutar trabajos de canalización. Si desea instalar un paquete dentro de una canalización, debe aprovechar las funcionalidades de administración de bibliotecas en el nivel de grupo.
  • Las bibliotecas de Python con ámbito de sesión se instalan automáticamente en los nodos de controlador y de trabajo.
  • No se admiten los siguientes comandos %conda : crear, limpiar, comparar, activar, desactivar, ejecutar, empaquetar.
  • Puede hacer referencia a comandos %pip y comandos %conda para obtener la lista completa de comandos.

Instalación de un paquete de terceros

Puede instalar fácilmente una biblioteca de Python desde PyPI.

# Install vega_datasets
%pip install altair vega_datasets

Para comprobar el resultado de la instalación, puede ejecutar el código siguiente para visualizar vega_datasets

# Create a scatter plot
# Plot Miles per gallon against the horsepower across different region

import altair as alt
from vega_datasets import data

cars = data.cars()
alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon',
    color='Origin',
).interactive()

Instalación de un paquete wheel desde la cuenta de almacenamiento

Para instalar la biblioteca desde el almacenamiento, debe montarla en la cuenta de almacenamiento mediante la ejecución de los siguientes comandos.

from notebookutils import mssparkutils  
 
mssparkutils.fs.mount(  
    "abfss://<<file system>>@<<storage account>.dfs.core.windows.net",  
    "/<<path to wheel file>>",  
    {"linkedService":"<<storage name>>"}  
) 

Y, a continuación, puede usar el comando %pip install para instalar el paquete wheel necesario.

%pip install /<<path to wheel file>>/<<wheel package name>>.whl

Instalar otra versión de la biblioteca integrada

Puede usar el siguiente comando para ver cuál es la versión integrada de un paquete determinado. Usamos Pandas como ejemplo

%pip show pandas

El resultado es el siguiente registro:

Name: pandas
Version: **1.2.3**
Summary: Powerful data structures for data analysis, time series, and statistics
Home-page: https://pandas.pydata.org
... ...

Puede usar el siguiente comando para cambiar pandas a otra versión, supongamos 1.2.4.

%pip install pandas==1.2.4

Desinstalación de una biblioteca con ámbito de sesión

Si desea desinstalar un paquete, que se instaló en esta sesión de cuaderno, puede hacer referencia a los siguientes comandos. Sin embargo, no se pueden desinstalar los paquetes integrados.

%pip uninstall altair vega_datasets --yes

Uso del comando %pip para instalar bibliotecas desde un archivo requirement.txt

%pip install -r  /<<path to requirement file>>/requirements.txt

Paquetes de Java o Scala con ámbito de sesión

Para especificar paquetes de Java o Scala de ámbito de sesión, puede usar la opción %%configure:

%%configure -f
{
    "conf": {
        "spark.jars": "abfss://<<file system>>@<<storage account>.dfs.core.windows.net/<<path to JAR file>>",
    }
}

Nota:

  • Se recomienda ejecutar el comando %%configure al principio del cuaderno. Puede consultar este documento para obtener la lista completa de parámetros válidos.

Paquetes de ámbito de sesión de R (versión preliminar)

Los grupos de Azure Synapse Analytics incluyen muchas bibliotecas de R populares listas para usar. También puede instalar otras bibliotecas de terceros durante la sesión del cuaderno de Apache Spark.

Nota:

  • Estos comandos de administración de bibliotecas de R se deshabilitarán al ejecutar trabajos de canalización. Si desea instalar un paquete dentro de una canalización, debe aprovechar las funcionalidades de administración de bibliotecas en el nivel de grupo.
  • Las bibliotecas de R con ámbito de sesión se instalan automáticamente en los nodos de controlador y de trabajo.

Instalación de un paquete

Puede instalar fácilmente una biblioteca de R desde CRAN.

# Install a package from CRAN
install.packages(c("nycflights13", "Lahman"))

También puede usar instantáneas de CRAN como repositorio para asegurarse de que siempre se descarga la misma versión del paquete.

install.packages("highcharter", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

Uso de devtools para instalar paquetes

La biblioteca devtools simplifica el desarrollo de paquetes para acelerar las tareas comunes. Esta biblioteca se instala dentro del entorno de ejecución de Azure Synapse Analytics predeterminado.

Puede usar devtools para especificar una versión específica de una biblioteca para instalarla. Estas bibliotecas se instalarán en todos los nodos del clúster.

# Install a specific version. 
install_version("caesar", version = "1.0.0") 

De forma similar, puede instalar una biblioteca directamente desde GitHub.

# Install a GitHub library. 

install_github("jtilly/matchingR") 

Actualmente, en Azure Synapse Analytics se admiten las siguientes funciones devtools:

Get-Help Descripción
install_github() Instala un paquete de R desde GitHub
install_gitlab() Instala un paquete de R desde GitLab
install_bitbucket() Instala un paquete de R desde BitBucket
install_url() Instala un paquete de R desde una dirección URL arbitraria
install_git() Se instala desde un repositorio git arbitrario
install_local() Se instala desde un archivo local en el disco
install_version() Se instala desde una versión específica en CRAN

Visualización de las bibliotecas instaladas

Puede consultar todas las bibliotecas instaladas en la sesión mediante el comando library.

library()

Puede usar la función packageVersion para comprobar la versión de la biblioteca:

packageVersion("caesar")

Eliminación de un paquete de R de una sesión

Puede usar la función detach para quitar una biblioteca del espacio de nombres. Estas bibliotecas permanecen en el disco hasta que se carguen de nuevo.

# detach a library

detach("package: caesar")

Para quitar un paquete con ámbito de sesión de un cuaderno, use el comando remove.packages(). Este cambio de biblioteca no afecta a otras sesiones del mismo clúster. Los usuarios no pueden desinstalar ni quitar bibliotecas integradas del entorno de ejecución predeterminado de Azure Synapse Analytics.

remove.packages("caesar")

Nota:

No se pueden quitar paquetes principales como SparkR, SparklyR o R.

Bibliotecas de R con ámbito de sesión y SparkR

Las bibliotecas con ámbito de cuaderno están disponibles en los nodos de trabajo de SparkR.

install.packages("stringr")
library(SparkR)

str_length_function <- function(x) {
  library(stringr)
  str_length(x)
}

docs <- c("Wow, I really like the new light sabers!",
               "That book was excellent.",
               "R is a fantastic language.",
               "The service in this restaurant was miserable.",
               "This is neither positive or negative.")

spark.lapply(docs, str_length_function)

Bibliotecas de R con ámbito de sesión y SparklyR

Con spark_apply() en SparklyR, puede usar cualquier paquete de R dentro de Spark. De forma predeterminada, en sparklyr::spark_apply(), el argumento de los paquetes se establece en FALSE. Este valor copia las bibliotecas del objeto libPaths actual en los nodos de trabajo, lo que le permite importarlas y usarlas en ellos. Por ejemplo, puede ejecutar lo siguiente para generar un mensaje con cifrado césar con sparklyr::spark_apply():

install.packages("caesar", repos = "https://cran.microsoft.com/snapshot/2021-07-16/")

spark_version <- "3.2"
config <- spark_config()
sc <- spark_connect(master = "yarn", version = spark_version, spark_home = "/opt/spark", config = config)

apply_cases <- function(x) {
  library(caesar)
  caesar("hello world")
}
sdf_len(sc, 5) %>%
  spark_apply(apply_cases, packages=FALSE)

Pasos siguientes