【问题标题】:Python alternative to R RJDBC connection to SQLRJDBC 与 SQL 的连接的 Python 替代方案
【发布时间】:2021-05-06 08:02:46
【问题描述】:

我有一个使用 RJDBC 驱动程序连接到 Vertica 数据库的 R 代码。代码如下:

library(RJDBC)
#for vertica save
user = "myuser"
pwd = "mypwd"

driver<- JDBC(driverClass="com.vertica.jdbc.Driver", classPath=Pathto thedriver")
connection<- dbConnect(driver, databasewithport, user, pwd)

sql_code = paste("SELECT .....")
mydata= dbGetQuery(connection, sql_code )

我正在寻找一种有助于做同样事情但使用 Python 的解决方案。我找到了以下link,但不明白该使用哪个示例以及该做什么。据我了解,这里不需要连接到 RJDBC 驱动程序。您能否帮助找到与 R 版本提供相同输出的解决方案。

下面的代码运行良好,但是,数据作为一个值检索,要获得另一个值,我需要更改....cur.fetchone()[ANYNUMBER])。如何获取 SQL 代码的数据框?

import vertica_python

conn_info = {'host': '127.0.0.1',
             'port': 5433,
             'user': 'some_user',
             'password': 'some_password',
             'database': 'vdb',
             'connection_load_balance': True}

# Server enables load balancing
with vertica_python.connect(**conn_info) as conn:
    cur = conn.cursor()
    cur.execute("SELECT NODE_NAME FROM V_MONITOR.CURRENT_SESSION")
    print("Client connects to primary node:", cur.fetchone()[0])
    cur.execute("SELECT SET_LOAD_BALANCE_POLICY('ROUNDROBIN')")

【问题讨论】:

    标签: python vertica


    【解决方案1】:

    首先你需要安装 vertica-python 包:

    pip install vertica-python
    

    接下来,您需要创建连接并执行查询。检索查询结果时,您可以 (1) 全部加载或 (2) 逐一处理。

    import vertica_python
    
    conn_info = {'host': '127.0.0.1',
                 'port': 5433,
                 'user': 'myuser',
                 'password': 'mypass',
                 'database': 'vdb',
                 'connection_load_balance': True}
    
    with vertica_python.connect(**conn_info) as connection:
        cur = conn.cursor()
        cur.execute("SELECT NODE_NAME FROM V_MONITOR.CURRENT_SESSION")
        # (1) If you want to load all the results in-memory
        data = cur.fetchall()
        print(data)
        # (2) If you want to process one by one
        for row in cur.iterate():
            print(row)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 2023-01-24
      • 2018-06-08
      • 1970-01-01
      相关资源
      最近更新 更多