Skip to content

aliyun/aliyun-odps-python-sdk

Repository files navigation

ODPS Python SDK


Elegent way to access ODPS API. Documentation

Installation

The quick way:

pip install pyodps[full] 

If you don't need to use Jupyter, just type

pip install pyodps 

The dependencies will be installed automatically.

Or from source code (not recommended for production use):

$ virtualenv pyodps_env $ source pyodps_env/bin/activate $ pip install git+https://github.com/aliyun/aliyun-odps-python-sdk.git

Dependencies

  • Python (>=2.7), including Python 3+, pypy, Python 3.7 recommended
  • setuptools (>=3.0)

Run Tests

  • install pytest
  • copy conf/test.conf.template to odps/tests/test.conf, and fill it with your account
  • run pytest odps

Usage

>>>importos>>>fromodpsimportODPS>>># Make sure environment variable CLOUD_ACCESS_KEY_ID already set to Access Key ID of user>>># while environment variable CLOUD_ACCESS_KEY_SECRET set to Access Key Secret of user.>>># Not recommended to hardcode Access Key ID or Access Key Secret in your code.>>>o=ODPS( >>>os.getenv('CLOUD_ACCESS_KEY_ID'), >>>os.getenv('CLOUD_ACCESS_KEY_SECRET'), >>>project='**your-project**', >>>endpoint='**your-endpoint**', >>> ) >>>dual=o.get_table('dual') >>>dual.name'dual'>>>dual.table_schemaodps.Schema{c_int_abigintc_int_bbigintc_double_adoublec_double_bdoublec_string_astringc_string_bstringc_bool_abooleanc_bool_bbooleanc_datetime_adatetimec_datetime_bdatetime } >>>dual.creation_timedatetime.datetime(2014, 6, 6, 13, 28, 24) >>>dual.is_virtual_viewFalse>>>dual.size448>>>dual.table_schema.columns [<columnc_int_a, typebigint>, <columnc_int_b, typebigint>, <columnc_double_a, typedouble>, <columnc_double_b, typedouble>, <columnc_string_a, typestring>, <columnc_string_b, typestring>, <columnc_bool_a, typeboolean>, <columnc_bool_b, typeboolean>, <columnc_datetime_a, typedatetime>, <columnc_datetime_b, typedatetime>]

Command-line and IPython enhancement

In [1]: %load_ext odps In [2]: %enter Out[2]: <odps.inter.Room at 0x10fe0e450> In [3]: %sql select * from pyodps_iris limit 5 |==========================================| 1 / 1 (100.00%) 2s Out[3]: sepallength sepalwidth petallength petalwidth name 0 5.1 3.5 1.4 0.2 Iris-setosa 1 4.9 3.0 1.4 0.2 Iris-setosa 2 4.7 3.2 1.3 0.2 Iris-setosa 3 4.6 3.1 1.5 0.2 Iris-setosa 4 5.0 3.6 1.4 0.2 Iris-setosa 

Python UDF Debugging Tool

#file: plus.pyfromodps.udfimportannotate@annotate('bigint,bigint->bigint')classPlus(object): defevaluate(self, a, b): returna+b
$ cat plus.input 1,1 3,2 $ pyou plus.Plus < plus.input 2 5 

Contributing

For a development install, clone the repository and then install from source:

git clone https://github.com/aliyun/aliyun-odps-python-sdk.git cd pyodps pip install -r requirements.txt -e . 

License

Licensed under the Apache License 2.0

About

ODPS Python SDK and data analysis framework

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 9