O EMR Serverless Spark oferece suporte ao desenvolvimento interativo de notebooks. Crie, execute e gerencie notebooks para processar e visualizar dados.
Pré-requisitos
Conta Alibaba Cloud criada. Para mais informações, consulte Cadastre-se para obter uma conta Alibaba Cloud.
Autorização da função necessária concluída. Para mais informações, consulte Role authorization for an Alibaba Cloud account.
Workspace e instância de sessão de notebook criados. Para mais informações, consulte Crie um workspace e Gerencie sessões de notebook.
Procedimento
Etapa 1: Preparar um arquivo de teste
As etapas a seguir usam um arquivo de dados de exemplo disponível para download.
Clique em employee.csv para baixar o arquivo de teste.
O arquivo employee.csv lista funcionários com nomes, departamentos e salários.
Etapa 2: Fazer upload do arquivo de teste
Faça upload do arquivo employee.csv no console do Object Storage Service (OSS). Para mais informações, consulte Upload files.
Etapa 3: Desenvolver e executar um notebook
Na página do EMR Serverless Spark, clique em Development no painel de navegação à esquerda.
-
Crie um notebook.
Na aba Development, clique no ícone
.Na caixa de diálogo exibida, insira um nome, selecione interactive development > Notebook como tipo e clique em OK.
-
No canto superior direito, selecione uma instância de sessão de notebook em execução.
Você também pode selecionar Create Notebook Session na lista suspensa para criar uma instância de sessão de notebook. Para mais informações sobre sessões de notebook, consulte Gerencie sessões de notebook.
NotaVários notebooks podem compartilhar uma única instância de sessão e seus recursos, o que elimina a necessidade de criar uma instância separada para cada notebook.
-
Processe e visualize os dados.
PySpark
-
Copie o código abaixo para uma célula Python no novo notebook.
# Create a simple DataFrame. Replace the OSS path with the path of the file that you uploaded in Step 2. df = spark.read.option("delimiter", ",").option("header", True).csv("oss://path/to/file") # Display the first few rows of the DataFrame. df.show(5) # Perform a simple aggregation operation: calculate the total salary for each department. sum_salary_per_department = df.groupBy("department").agg({"salary": "sum"}).show() -
Clique em Execute All Cells para executar o notebook.
Para executar uma única célula, clique no ícone
ao lado dela.# Create a simple DataFrame. Replace the OSS path with the path of the file that you uploaded in Step 2. df = spark.read.option("delimiter", ",").option("header", True).csv("oss://<yourBucketName>/<path>/employee.csv") # Display the first few rows of the DataFrame. df.show(5) +-------------+----------+------+ |employee_name|department|salary| +-------------+----------+------+ | James| Sales| 3000| | Michael| Sales| 4600| | Robert| Marketing| 4100| | Maria| Finance| 3000| | James| Sales| 3000| +-------------+----------+------+ only showing top 5 rows # Perform a simple aggregation operation: calculate the total salary for each department. sum_salary_per_department = df.groupBy("department").agg({"salary": "sum"}).show() +----------+-----------+ |department|sum(salary)| +----------+-----------+ | Sales| 12600.0| | Finance| 6900.0| | Marketing| 10400.0| +----------+-----------+ -
(Opcional) Visualize a Spark UI.
Na lista suspensa de sessões, passe o mouse sobre o ícone
da instância de sessão do notebook atual e clique em Spark UI para visualizar informações sobre seus jobs do Spark.
Visualization
NotaAs sessões de notebook já têm as bibliotecas matplotlib, numpy e pandas pré-instaladas. Caso precise usar outra biblioteca de terceiros, consulte Use third-party Python libraries in a notebook.
-
Use a biblioteca matplotlib para visualização de dados.
import matplotlib.pyplot as plt l = sc.parallelize(range(20)).collect() plt.plot(l) plt.ylabel('some numbers') plt.show() -
Clique em Execute All Cells para executar o notebook.
Para executar uma única célula, clique no ícone
ao lado dela.pip install matplotlibSaída da instalação:
Looking in indexes: http://mirrors.cloud.aliyuncs.com/pypi/simple Collecting matplotlibimport matplotlib.pyplot as plt l = sc.parallelize(range(20)).collect() plt.plot(l) plt.ylabel('some numbers') plt.show()Após a execução do código, um gráfico de linhas será exibido com o eixo Y rotulado como "some numbers".
-
Etapa 4: Publicar o notebook
Após a conclusão da execução, clique em Publish no canto superior direito.
Na caixa de diálogo Publish, insira os detalhes necessários e clique em OK para salvar o notebook como uma nova versão.