Tüm Ürünler
Search
Belge Merkezi

MaxCompute:Verileri yerel bir dizine indirmemek için PyODPS düğümü kullanın

Son Güncelleme:Oct 04, 2026

Bu konu, verileri işlemek amacıyla yerel bir dizine indirmekten kaçınmak veya verileri çevrimiçi olarak işlemek için PyODPS düğümünün nasıl kullanılacağını açıklar.

Arka plan bilgileri

PyODPS, verileri yerel bir dizine indirmek için birden çok yöntem sunar. Verileri işleyip MaxCompute'e yüklemek üzere yerel bir dizine indirebilirsiniz. Ancak, verileri yerel bir dizine indirdiğinizde MaxCompute'in yüksek düzeyde paralel işleme özelliğinden yararlanılamayacağından yerel veri işleme verimsizdir. Veri birimi 10 MB'tan büyükse verileri işlemek için yerel bir dizine indirmemenizi öneririz. Verileri yerel bir dizine indirmek için aşağıdaki yöntemlerden birini kullanabilirsiniz:

  • head, tail veya to_pandas yöntemini kullanın. Küçük veri birimlerini elde etmek için çoğunlukla head veya tail yöntemini kullanın. Büyük veri birimleri elde etmek istiyorsanız verileri bir MaxCompute tablosunda depolamak için persist yöntemini kullanın. Daha fazla bilgi için bkz. Sonuçları yürütme ve alma.

  • open_reader yöntemini kullanın. Verileri elde etmek için bir tablo veya SQL örneği üzerinde open_reader çalıştırabilirsiniz. Büyük veri birimlerini işlemek gerekiyorsa PyODPS DataFrame veya MaxCompute SQL kullanmanızı öneririz. PyODPS DataFrame nesnesi, bir MaxCompute tablosuna dayanarak oluşturulur. Bu yöntem, yerel veri işlemeye göre daha yüksek verimlilik sağlar.

Örnek kod

Bir JSON dizesini birden çok satıra dönüştürün. Her satır bir anahtardan ve değerinden oluşur.

  • Yerel test için küçük veri birimlerini elde etmek amacıyla head yöntemini kullanın

    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
  • Çevrimiçi üretim için büyük veri birimlerini bir MaxCompute tablosunda depolamak üzere persist yöntemini kullanın

    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')