电脑本地python通过pyodps连接maxcompute

5 篇文章 1 订阅
1 篇文章 0 订阅

1. 背景:

最近公司将数据库从阿里云的adb转换到maxcompute,这次是介绍如何将本地的anaconda环境的python,通过pyodps包连接maxcompute(以下简称mc)

2. 需要内容:

  1. 运维给到的mc账号信息:
    """
    用户登录名称 niubi@22333333837828675.onaliyun.com
    登录密码 hduishcuisbbcsyu{}hauiidhiauhs
    AccessKey ID dschuivdsbyfydgywycsbb
    AccessKey Secret sgdhsdhus{sahud}lihaihlihai
    """
  2. 电脑本地安装anaconda,然后再安装pyodps包:  pip install pyodps

3. 在jupyter或者python文件中使用:

import pandas as pd
from odps import ODPS
odps = ODPS(access_id="dschuivdsbyfydgywycsbb",
            secret_access_key="sgdhsdhus{sahud}lihaihlihai",
            project="datawarehouse_bu",
            endpoint="http://service.cn-shanghai.maxcompute.aliyun.com/api")

1. 上面的endpoint对应的地址可以从阿里云这个网站去找:Endpoint - MaxCompute - 阿里云 (aliyun.com)  【各地域Endpoint对照表(外网连接方式)】板块

2. project这个对应的字段是叫做【项目名称】,可以在dataworks里面查看。

4. 将mc的查询结果保存到pandas中:

问了官方人员,pyopds目前没有类似于pandas的read_sql_query函数,我们可以自己写一个函数。

# 写一个函数
def read_sql_query(odps, sql):
    """
    :param odps:
    :param sql:
    :return: pandas DataFrame
    """
    try:
        readers_ = odps.execute_sql(sql).open_reader()
        col_name = [i.name for i in readers_.schema]

        data = pd.concat([pd.DataFrame({column: [value] for column, value in zip(col_name, reader.values)}) for reader in readers_])
    except Exception as e:
        data = pd.DataFrame({'info':[e]})
        print(e)
    finally:
        return data

# test function
read_sql_query(odps=odps,sql="""
SELECT  *
FROM    datawarehouse.dwd_log_detail ld
WHERE   ld.visitday = '2021-07-26'
AND     ld.pt = '20210726'
LIMIT 10000
""")

5.更多操作:

还有很多别的函数,我可能用不到,这里先不列出来,我也是刚摸索。后面遇到了相关问题,再做记录

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
要在Python中使用Thrift连接HBase,您需要按照以下步骤进行设置: 1. 安装所需的依赖项: 您需要安装`thrift`和`happybase`这两个Python库。可以使用以下命令进行安装: ```bash pip install thrift happybase ``` 2. 生成HBase的Thrift代码: 使用Thrift工具生成HBase的Thrift代码。您可以使用以下命令: ```bash thrift -r --gen py hbase.thrift ``` 这将生成Python的Thrift代码文件。 3. 创建HBase连接: 在Python脚本中,您需要首先创建一个HBase连接。示例代码如下: ```python import happybase connection = happybase.Connection(host='localhost', port=9090) ``` 4. 执行HBase操作: 在创建了HBase连接之后,您可以使用`connection`对象执行各种HBase操作,例如创建表、插入数据、获取数据等。以下是一些示例代码: - 创建表: ```python connection.create_table( 'mytable', { 'cf': dict(max_versions=10), } ) ``` - 插入数据: ```python table = connection.table('mytable') table.put( b'row1', { b'cf:col1': b'value1', b'cf:col2': b'value2', } ) ``` - 获取数据: ```python table = connection.table('mytable') row = table.row(b'row1') print(row) ``` - 删除数据: ```python table = connection.table('mytable') table.delete(b'row1') ``` 这只是一些示例代码,您可以根据需要使用其他HappyBase方法来执行更多操作。 5. 关闭连接: 当您完成HBase操作后,记得关闭连接以释放资源: ```python connection.close() ``` 请注意,为了成功执行这些操作,您需要确保HBase正在运行并且在指定的主机和端口上进行监听。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuanzhoulvpi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值