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的文档对它的特性含糊其辞。
发布于 2020-07-07 23:24:21
您说您已经尝试过记录日志以关闭所有日志,但它不起作用。尝试这一行,并告诉我它是否有效:
import logging
logging.getLogger("jaydebeapi").setLevel(logging.WARNING)这应该只显示来自API的警告。
发布于 2020-07-13 04:44:38
Jaydebeapi几乎没有日志记录。日志来自Java JDBC驱动程序。您必须找出如何在Java端禁用它们。最有可能的情况是,您必须设置一些系统属性。除非Jaydebeapi添加了对系统参数或系统属性的直接支持,否则必须通过预先通过JPype手动启动java来设置它们,并在使用Jaydebeapi之前在JPype.startJVM()调用中传递它们。
https://stackoverflow.com/questions/62778219
复制相似问题