O MaxCompute permite usar o MaxFrame em um cliente local que encapsula as funcionalidades do MaxFrame SDK. Este tópico descreve como instalar, configurar e usar o MaxFrame em um ambiente local.
Pré-requisitos
Python 3.7 ou 3.11 instalado. Outras versões podem causar erros.
pip instalado. Se o pip não estiver pré-instalado com sua versão do Python, acesse o site oficial do Python para obter instruções de instalação.
Projeto do MaxCompute criado. Para mais informações, consulte Criar um projeto do MaxCompute.
Dica: Recomendamos usar um ambiente virtual Python para evitar conflitos de dependências com outros projetos. Crie um ambiente com python -m venv maxframe-env e ative-o antes de executar o comando de instalação.
Instale o MaxFrame
Abra a CLI do sistema (por exemplo, Prompt de Comando no Windows) e execute o seguinte comando:
pip install --upgrade maxframe
Para verificar a instalação, execute o comando abaixo. A ausência de saída ou mensagens de erro indica que a instalação foi bem-sucedida:
python -c "import maxframe.dataframe as md"
Se ocorrer um erro, verifique a versão padrão do Python e alterne para o Python 3.7 ou 3.11:
# Check the default Python version.
python --version
# Switch to Python 3.7. Replace $path/python3.7 with the actual installation path of Python 3.7.
$path/python3.7 -m pip install setuptools>=3.0
Configure credenciais
O MaxFrame conecta-se ao MaxCompute por meio de um par de AccessKey. Armazene as credenciais em variáveis de ambiente para evitar codificação direta nos scripts.
Defina as seguintes variáveis de ambiente com o AccessKey ID e o AccessKey secret da conta Alibaba Cloud que possui as permissões do MaxCompute necessárias sobre os objetos a serem gerenciados no projeto:
ALIBABA_CLOUD_ACCESS_KEY_ID-- seu AccessKey IDALIBABA_CLOUD_ACCESS_KEY_SECRET-- seu AccessKey secret
Obtenha o par de AccessKey na página AccessKey Pair no Alibaba Cloud Management Console.
Execute um script de exemplo
-
Crie um arquivo
.pyno ambiente local, comotest.py, e adicione o código de exemplo a seguir. Substitua os placeholders pelos valores reais:Placeholder
Descrição
your-default-projectNome do projeto do MaxCompute. Para localizar o nome do projeto, faça login no console do MaxCompute e selecione Workspace > Projects no painel de navegação à esquerda.
your-end-pointEndpoint da região onde reside o projeto do MaxCompute. Para mais informações, consulte Endpoints.
import os import maxframe.dataframe as md from odps import ODPS from maxframe import new_session # Create a MaxCompute entry. o = ODPS( # Read credentials from environment variables. # Do not hard-code your AccessKey ID and AccessKey secret in source files. os.getenv('ALIBABA_CLOUD_ACCESS_KEY_ID'), os.getenv('ALIBABA_CLOUD_ACCESS_KEY_SECRET'), project='your-default-project', endpoint='your-end-point', ) table = o.create_table("test_source_table", "a string, b bigint", if_not_exists=True) with table.open_writer() as writer: writer.write([ ["value1", 0], ["value2", 1], ]) # Create a MaxFrame session. session = new_session(o) df = md.read_odps_table("test_source_table", index_col="b") df["a"] = "prefix_" + df["a"] # Print DataFrame data. print(df.execute().fetch()) # Write data from a MaxFrame DataFrame to a MaxCompute table. md.to_odps_table(df, "test_prefix_source_table").execute() # Destroy the MaxFrame session. session.destroy() -
Acesse o diretório que contém o arquivo
test.pye execute-o:python test.py
Verifique o resultado
Após executar o script, confirme se o MaxFrame funciona corretamente verificando as saídas abaixo.
Saída do script: O script exibe o seguinte resultado do DataFrame:
b a
0 prefix_value1
1 prefix_value2
Consulta à tabela: Execute a instrução SQL a seguir no projeto do MaxCompute para consultar os dados na tabela test_prefix_source_table:
SELECT * FROM test_prefix_source_table;
O resultado retornado é:
+------------+------------+
| b | a |
+------------+------------+
| 0 | prefix_value1 |
| 1 | prefix_value2 |
+------------+------------+
Se ambas as saídas corresponderem aos resultados esperados acima, o MaxFrame opera corretamente no ambiente local.