我正在尝试使用 dask.dataframe.read_sql_table()
功能。但是,我尝试使用的索引列包含UUID,因为它们是sql表中的主键。不幸的是,简单查询失败,很可能是因为sqlalchemy(或psycopg2)无法对UUID进行分区排序。
下面是一些描述性示例代码,它应该返回我的数据库中的10个最大分数:
from dask import dataframe
from sqlalchemy.engine.url import URL
params_dic = {
"host" : "localhost",
"database" : "results_db",
"username" : "user",
"password" : "strongpassword",
"drivername": "postgresql"
}
url = URL(**params_dic)
ddf = dataframe.read_sql_table("results", url, schema="players",
divisions=list("0123456789abcdefh"), index_col="id")
ddf.scores.nlargest(10).compute()
这会产生以下错误:
DataError: (psycopg2.errors.InvalidTextRepresentation) invalid input syntax for type uuid: "0"
LINE 3: WHERE players.results.id >= '0' AND players.re...
^
[SQL: SELECT players.results.id, players.results.score, players.results.rank
FROM players.results
WHERE players.results.id >= %(id_1)s AND players.results.id < %(id_2)s]
[parameters: {'id_1': '0', 'id_2': '1'}]
(Background on this error at: http://sqlalche.me/e/9h9h)
暂无答案!
目前还没有任何答案,快来回答吧!