Todos os produtos
Search
Central de documentação

MaxCompute:Use um nó PyODPS para evitar baixar dados para um diretório local

Última atualização: Aug 20, 2026

Este tópico descreve como usar um nó PyODPS para evitar baixar dados para um diretório local durante o processamento ou para processar dados online.

Informações básicas

O PyODPS oferece diversos métodos para baixar dados para um diretório local. Você pode baixar os dados para processá-los e, em seguida, enviá-los de volta ao MaxCompute. No entanto, o processamento local é ineficiente, pois não aproveita a capacidade de processamento massivamente paralelo do MaxCompute. Se o volume de dados for superior a 10 MB, evite baixá-los para um diretório local. Use um dos seguintes métodos para baixar dados:

  • Use os métodos head, tail ou to_pandas. Na maioria dos casos, use head ou tail para obter pequenos volumes de dados. Para grandes volumes, use o método persist para armazenar os dados em uma tabela do MaxCompute. Para mais informações, consulte Execute and obtain results.

  • Use o método open_reader. Execute open_reader em uma tabela ou instância SQL para obter os dados. Se precisar processar grandes volumes, use PyODPS DataFrame ou MaxCompute SQL. Um objeto PyODPS DataFrame é criado com base em uma tabela do MaxCompute e oferece maior eficiência que o processamento local.

Código de exemplo

Converta uma string JSON em várias linhas. Cada linha consiste em uma chave e seu respectivo valor.

  • Para testes locais, use o método head para obter pequenos volumes de dados

    In [12]: df.head(2)
                   json
    0  {"a": 1, "b": 2}
    1  {"c": 4, "b": 3}
    
    In [14]: from odps.df import output
    
    In [16]: @output(['k', 'v'], ['string', 'int'])
        ...: def h(row):
        ...:     import json
        ...:     for k, v in json.loads(row.json).items():
        ...:         yield k, v
        ...:   
    
    In [21]: df.apply(h, axis=1).head(4)
    
       k  v
    0  a  1
    1  b  2
    2  c  4
    3  b  3
  • Para produção online, use o método persist para armazenar grandes volumes de dados em uma tabela do MaxCompute

    In [14]: from odps.df import output
    
    In [16]: @output(['k', 'v'], ['string', 'int'])
        ...: def h(row):
        ...:     import json
        ...:     for k, v in json.loads(row.json).items():
        ...:         yield k, v
        ...:   
    
    In [21]: df.apply(h, axis=1).persist('my_table')