Todos os produtos
Search
Central de documentação

E-MapReduce:Use third-party Python libraries in a notebook

Última atualização: Jul 17, 2026

Jobs interativos do PySpark em notebooks frequentemente exigem bibliotecas Python de terceiros para processamento e análise de dados. Instale essas bibliotecas usando um dos três métodos disponíveis.

Informações básicas

Durante o desenvolvimento interativo com PySpark, as bibliotecas Python de terceiros oferecem recursos mais flexíveis para processamento e análise de dados. A tabela a seguir compara os três métodos disponíveis.

Método

Casos de uso

Método 1: Instalar bibliotecas Python usando pip

Processamento de variáveis não relacionadas ao Spark, como valores de retorno de computações do Spark ou variáveis personalizadas.

Importante

As bibliotecas instaladas com este método não persistem entre sessões. Reinstale-as após cada reinício de sessão.

Método 2: Configurar um ambiente Python personalizado usando Environments

Jobs do PySpark que exigem bibliotecas de terceiros pré-instaladas em cada sessão do notebook.

Método 3: Configurar um ambiente Python personalizado usando parâmetros do Spark

Computação distribuída com PySpark em que as bibliotecas de terceiros precisam estar disponíveis para todos os executores.

Pré-requisitos

Procedimento

Método 1: Instalar bibliotecas usando pip

  1. Acesse a página de desenvolvimento de notebook.

    1. Faça login no console do E-MapReduce.

    2. No painel de navegação à esquerda, escolha EMR Serverless > Spark.

    3. Na página Spark, clique no nome do workspace desejado.

    4. Na página EMR Serverless Spark, clique em Development no painel de navegação à esquerda.

    5. Clique duas vezes no notebook criado.

  2. Em uma célula Python do notebook, insira o comando a seguir para instalar a biblioteca scikit-learn e clique no ícone Run Cell image.

    pip install scikit-learn
  3. Em outra célula Python, insira o código a seguir e clique no ícone Run Cell image.

    # Import the library and prepare the dataset.
    from sklearn import datasets
    # Load a built-in dataset, such as the Iris dataset.
    iris = datasets.load_iris()
    X = iris.data  # Feature data
    y = iris.target  # Label
    # Split the dataset.
    from sklearn.model_selection import train_test_split
    # Split the data into training and test sets.
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
    # Train a support vector machine (SVM) model.
    from sklearn.svm import SVC
    # Create a classifier instance.
    clf = SVC(kernel='linear')  # Use a linear kernel.
    # Train the model.
    clf.fit(X_train, y_train)
    # Make predictions with the trained model.
    y_pred = clf.predict(X_test)
    # Evaluate model performance.
    from sklearn.metrics import classification_report, accuracy_score
    print(classification_report(y_test, y_pred))
    print("Accuracy:", accuracy_score(y_test, y_pred))
    

    A saída será semelhante à seguinte:

                  precision    recall  f1-score   support
               0       1.00      1.00      1.00        19
               1       1.00      1.00      1.00        13
               2       1.00      1.00      1.00        13
        accuracy                           1.00        45
       macro avg       1.00      1.00      1.00        45
    weighted avg       1.00      1.00      1.00        45
    Accuracy: 1.0

Método 2: Configurar um ambiente com Environments

Etapa 1: Criar um ambiente de execução

  1. Acesse a página Environments.

    1. Faça login no console do E-MapReduce.

    2. No painel de navegação à esquerda, escolha EMR Serverless > Spark.

    3. Na página Spark, clique no nome do workspace desejado.

    4. Na página EMR Serverless Spark, clique em Environment no painel de navegação à esquerda.

  2. Clique em Create Environment.

  3. Na página Create Environment, clique em Add Library.

    Para descrições dos parâmetros, consulte Gerenciar ambientes de execução.

  4. Na caixa de diálogo New Library, defina Source Type como PyPI, especifique o PyPI Package e clique em OK.

    No campo PyPI Package, insira o nome da biblioteca e a versão. Caso nenhuma versão seja especificada, a versão mais recente será instalada. Exemplo: scikit-learn.

  5. Clique em create.

    Após a criação do ambiente, o sistema inicia a inicialização.

Etapa 2: Usar o ambiente de execução

Nota

Pare a sessão antes de editá-la.

  1. Acesse a aba Notebook Session.

    1. Na página EMR Serverless Spark, escolha O&M Center > Sessions no painel de navegação à esquerda.

    2. Clique na aba Notebook Session.

  2. Na coluna Actions da sessão de notebook desejada, clique em Edit.

  3. Na lista suspensa Environment, selecione o ambiente de execução criado na etapa anterior e clique em Save Changes.

  4. No canto superior direito, clique em START.

Etapa 3: Classificar dados com Scikit-learn

  1. Acesse a página de desenvolvimento de notebook.

    1. Na página EMR Serverless Spark, clique em Development no painel de navegação à esquerda.

    2. Clique duas vezes no notebook criado.

  2. Em uma célula Python do notebook, insira o código a seguir e clique no ícone Run Cell image.

    # Import the library and prepare the dataset.
    from sklearn import datasets
    # Load a built-in dataset, such as the Iris dataset.
    iris = datasets.load_iris()
    X = iris.data  # Feature data
    y = iris.target  # Label
    # Split the dataset.
    from sklearn.model_selection import train_test_split
    # Split the data into training and test sets.
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
    # Train a support vector machine (SVM) model.
    from sklearn.svm import SVC
    # Create a classifier instance.
    clf = SVC(kernel='linear')  # Use a linear kernel.
    # Train the model.
    clf.fit(X_train, y_train)
    # Make predictions with the trained model.
    y_pred = clf.predict(X_test)
    # Evaluate model performance.
    from sklearn.metrics import classification_report, accuracy_score
    print(classification_report(y_test, y_pred))
    print("Accuracy:", accuracy_score(y_test, y_pred))
                  

Método 3: Configurar um ambiente com parâmetros do Spark

Este método requer ipykernel 6.29 ou posterior, jupyter_client 8.6 ou posterior e Python 3.8 ou posterior. Empacote o ambiente em um sistema Linux com arquitetura x86.

Etapa 1: Compilar e implantar um ambiente conda

  1. Execute os comandos a seguir para instalar o Miniconda:

    wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
    chmod +x Miniconda3-latest-Linux-x86_64.sh
    ./Miniconda3-latest-Linux-x86_64.sh -b
    source miniconda3/bin/activate
  2. Compile um ambiente conda que utilize Python 3.8 e numpy.

    # Create and activate the conda environment.
    conda create -y -n pyspark_conda_env python=3.8
    conda activate pyspark_conda_env
    # Install third-party libraries.
    pip install numpy \
    ipykernel~=6.29 \
    jupyter_client~=8.6 \
    jieba \
    conda-pack
    # Pack the environment.
    conda pack -f -o pyspark_conda_env.tar.gz

Etapa 2: Carregar arquivo de recurso no OSS

Carregue o arquivo pyspark_conda_env.tar.gz empacotado no Alibaba Cloud OSS e anote o caminho completo do OSS. Para mais informações, consulte Upload Simples.

Etapa 3: Configurar e iniciar a sessão do notebook

Nota

Pare a sessão antes de editá-la.

  1. Acesse a aba Notebook Session.

    1. Na página EMR Serverless Spark, escolha O&M Center > Sessions no painel de navegação à esquerda.

    2. Clique na aba Notebook Session.

  2. Na coluna Actions da sessão de notebook desejada, clique em Edit.

  3. Na seção Spark Configuration, adicione as configurações a seguir e clique em Save Changes.

    spark.archives  oss://<yourBucket>/path/to/pyspark_conda_env.tar.gz#env
    spark.pyspark.python ./env/bin/python
    Nota

    Na configuração, substitua <yourBucket>/path/to pelo caminho real de upload no OSS.

  4. No canto superior direito, clique em START.

Etapa 4: Processar dados de texto com Jieba

Nota

Jieba é uma biblioteca Python de terceiros para segmentação de texto em chinês. Para informações sobre sua licença de código aberto, consulte LICENSE.

  1. Acesse a página de desenvolvimento de notebook.

    1. Na página EMR Serverless Spark, clique em Development no painel de navegação à esquerda.

    2. Clique duas vezes no notebook criado.

  2. Em uma nova célula Python, insira o comando a seguir para segmentar palavras em chinês usando Jieba e clique no ícone Run Cell image.

    import jieba
    strs = ["EMRServerlessSpark是一款专为大规模数据处理与分析而打造的全托管Serverless产品", "为您提供了高效的任务开发调试调度以及运维等一站式服务", "EMRServerlessSpark实现了资源调度和根据任务负载进行动态扩展"]
    sc.parallelize(strs).flatMap(lambda s: jieba.cut(s, use_paddle=True)).collect()

    O comando retorna o seguinte resultado:

    import jieba
    strs = ["EMRServerlessSpark是一款专为大规模数据处理与分析而打造的全托管Serverless产品", "为您提供了高效的任务开发调试调度以及运维等一站式服务", "EMRServerlessSpark实现了资源调度和根据任务负载进行动态扩展..."]
    sc.parallelize(strs).flatMap(lambda s: jieba.cut(s, use_paddle=True)).collect()
    ['EMRServerlessSpark',
     '是',
     '一款',
     '专',
     '为',
     '大规模',
     '数据处理',
     '与',
     '分析',
     '而',
     '打造',
     '的',
     '全',
     '托管',
     'Serverless',
     '产品',
     '为',
     '您',
     '提供',
     '了',
     '高效',
     '的',
     '任务',
     '开发',
     '调试',
     '调度',
     '以及',
     '运维',
     '等',
     '一站式',
     '服务',
     'EMRServerlessSpark',
     '实现',
     '了',
     '资源',
     '调度',
     '和',
     '根据',
     '任务',
     '负载',
     '进行',
     '动态',
     '扩展']