0
import os

import pandas as pd
from jaydebeapi import connect


def sql_query(query: str) -> pd.DataFrame:
    jclassname = "classname"

    url = "urlToCluster"

    driver_args = {"keys":"values"}

    path = "pathToJars"
    jars = [f"{path}{item}" for item in os.listdir(path)]
    with connect(jclassname=jclassname, url=url, driver_args=driver_args, jars=jars) as engine:
        df = pd.read_sql_query(query, engine)

    return df

每当我连接到我的 sql jar 时,都会有大量的调试日志输出。我似乎无法弄清楚如何抑制这些日志。我尝试使用日志记录来关闭所有日志,但这似乎不起作用。我不知道该怎么做。我觉得它与 jaydebeapi 和 java 有关。jaydebeapi 的文档在其功能上含糊不清。

4

2 回答 2

0

您说您已尝试记录以关闭所有日志,但没有成功。试试这条线,告诉我它是否有效:

import logging
logging.getLogger("jaydebeapi").setLevel(logging.WARNING)

这应该只显示来自 API 的警告。

于 2020-07-07T15:24:20.583 回答
0

Jaydebeapi 几乎没有日志记录。日志来自 Java JDBC 驱动程序。您必须了解如何在 Java 端禁用它们。很可能您必须设置一些系统属性。除非 Jaydebeapi 添加对系统参数或系统属性的直接支持,否则您必须通过提前通过 JPype 手动启动 java 来设置它们,并在使用 Jaydebeapi 之前将它们传递给 JPype.startJVM() 调用。

于 2020-07-12T20:44:38.190 回答