在dask Dataframe 中使用UUID作为索引列

eanckbw9  于 2021-08-25  发布在  Java
关注(0)|答案(0)|浏览(282)

我正在尝试使用 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)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题