Elegent way to access ODPS API. Documentation
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- Python (>=2.7), including Python 3+, pypy, Python 3.7 recommended
- setuptools (>=3.0)
- install pytest
- copy conf/test.conf.template to odps/tests/test.conf, and fill it with your account
- run
pytest odps
>>>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>]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 #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 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 . Licensed under the Apache License 2.0