Instale o SDK do MaxFrame na sua máquina local e use-o para interagir com o MaxCompute no processamento distribuído de dados.
Pré-requisitos
Antes de começar, verifique se os seguintes requisitos foram atendidos:
Python 3.7 ou 3.11 instalado no sistema local. Outras versões podem causar erros.
pip instalado no sistema local. Caso contrário, visite o site oficial do Python para obter instruções de instalação.
Projeto do MaxCompute criado. Para mais informações, consulte Crie um projeto do MaxCompute.
Instale o MaxFrame
-
Em uma janela de linha de comando (como o CMD do Windows), execute o seguinte comando pip para instalar o cliente MaxFrame:
pip install --upgrade maxframe -
Execute o comando abaixo para verificar a instalação. Se nenhuma saída ou erro for exibido, 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. Por exemplo:
# Check the system default version python --version # Switch the system default version to Python 3.7, where $path/python3.7 is the installed Python path $path/python3.7 -m pip install setuptools>=3.0
Use o MaxFrame
-
Crie um arquivo local com a extensão
.py(por exemplo,test.py). Copie o código de exemplo a seguir paratest.pye salve o arquivo.import os import maxframe.dataframe as md from odps import ODPS from maxframe import new_session # Create a MaxCompute entry point o = ODPS( # Set the ALIBABA_CLOUD_ACCESS_KEY_ID environment variable to your AccessKey ID, # and ALIBABA_CLOUD_ACCESS_KEY_SECRET to your AccessKey secret. # Do not use AccessKey ID and AccessKey secret strings directly. 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 MaxFrame DataFrame data to a MaxCompute table md.to_odps_table(df, "test_prefix_source_table").execute() # Destroy the MaxFrame session session.destroy()Descrição dos parâmetros:
ALIBABA_CLOUD_ACCESS_KEY_ID e ALIBABA_CLOUD_ACCESS_KEY_SECRET: defina essas variáveis de ambiente com o AccessKey ID e o AccessKey secret que possuem as permissions necessárias para o projeto MaxCompute de destino. Obtenha seu AccessKey ID na página de Gerenciamento de AccessKey.
your-default-project: nome do seu projeto MaxCompute. Faça login no console do MaxCompute e, no painel de navegação à esquerda, escolha Workspace > Projects para visualizá-lo.
your-end-point: endpoint da região onde reside o projeto MaxCompute. Para mais informações, consulte Endpoint.
-
Acesse o diretório que contém o arquivo
test.pye execute-o. Por exemplo:python test.py
Verifique o resultado
Após executar o código Python, consulte os dados da tabela de destino. Se o resultado corresponder ao esperado, o MaxFrame está instalado corretamente e conectado ao cluster do MaxCompute.
-
A execução do código Python retorna o seguinte resultado:
b a 0 prefix_value1 1 prefix_value2 -
No projeto MaxCompute de destino, execute a instrução SQL a seguir 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 | +------------+------------+