pyodps 获取表数据,向表写数据,行记录Record报错

2 篇文章 0 订阅
1 篇文章 0 订阅

阿里云pyodps文档 http://pyodps.readthedocs.io/zh_CN/latest/base-tables-zh.html

获取表数据,向表写数据,行记录Record报错

报错信息:

>>> with mytable.open_writer(partition='pt=test') as writer:
...     writer.write([1,2])  
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/contextlib.py", line 16, in __enter__
    return self.gen.next()
  File "/usr/lib/python2.6/site-packages/odps/models/table.py", line 403, in open_writer
    upload_id=upload_id, **kw)
  File "/usr/lib/python2.6/site-packages/odps/tunnel/tabletunnel/tabletunnel.py", line 54, in create_upload_session
    compress_option=compress_option)
  File "/usr/lib/python2.6/site-packages/odps/tunnel/tabletunnel/uploadsession.py", line 57, in __init__
    self._init()
  File "/usr/lib/python2.6/site-packages/odps/tunnel/tabletunnel/uploadsession.py", line 71, in _init
    resp = self._client.post(url, {}, params=params, headers=headers)
  File "/usr/lib/python2.6/site-packages/odps/rest.py", line 120, in post
    return self.request(url, 'post', data=data, **kwargs)
  File "/usr/lib/python2.6/site-packages/odps/rest.py", line 112, in request
    errors.throw_if_parsable(res)
  File "/usr/lib/python2.6/site-packages/odps/errors.py", line 78, in throw_if_parsable
    raise NoSuchObject('No such object.')
odps.errors.NoSuchObject: No such object.

 

解决:

找不到分区,也就是mytable表没有test分区

可以先添加分区

mytable.create_partition('pt=test')

有test分区后就能写如数据了

>>> with mytable.open_writer(partition='pt=test') as writer:
...     records = [[111],                
...                 [222],
...               [333],
...               [444]]
...     writer.write(records)

 

 

报错信息:

>>> with mytable.open_writer(partition='pt=test') as writer:
...     records=[1,2,3,4]                                   
...     writer.writer(records)                              
... 
Traceback (most recent call last):
  File "<stdin>", line 3, in <module>
  File "/usr/lib64/python2.6/contextlib.py", line 34, in __exit__
    self.gen.throw(type, value, traceback)
  File "/usr/lib/python2.6/site-packages/odps/models/table.py", line 477, in open_writer
    yield RecordWriter()
  File "<stdin>", line 3, in <module>
AttributeError: 'RecordWriter' object has no attribute 'writer'
>>>   

 

解决:
writer.write(records)中第二个writer多个r,如下
>>> 
>>> with mytable.open_writer(partition='pt=test') as writer:
...     records = [[111],                
...                 [222],
...               [333],
...               [444]]
...     writer.write(records)
... 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值