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

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

我正在尝试使用 dask.dataframe.read_sql_table() 功能。但是,我尝试使用的索引列包含UUID,因为它们是sql表中的主键。不幸的是,简单查询失败,很可能是因为sqlalchemy(或psycopg2)无法对UUID进行分区排序。
下面是一些描述性示例代码,它应该返回我的数据库中的10个最大分数:

  1. from dask import dataframe
  2. from sqlalchemy.engine.url import URL
  3. params_dic = {
  4. "host" : "localhost",
  5. "database" : "results_db",
  6. "username" : "user",
  7. "password" : "strongpassword",
  8. "drivername": "postgresql"
  9. }
  10. url = URL(**params_dic)
  11. ddf = dataframe.read_sql_table("results", url, schema="players",
  12. divisions=list("0123456789abcdefh"), index_col="id")
  13. ddf.scores.nlargest(10).compute()

这会产生以下错误:

  1. DataError: (psycopg2.errors.InvalidTextRepresentation) invalid input syntax for type uuid: "0"
  2. LINE 3: WHERE players.results.id >= '0' AND players.re...
  3. ^
  4. [SQL: SELECT players.results.id, players.results.score, players.results.rank
  5. FROM players.results
  6. WHERE players.results.id >= %(id_1)s AND players.results.id < %(id_2)s]
  7. [parameters: {'id_1': '0', 'id_2': '1'}]
  8. (Background on this error at: http://sqlalche.me/e/9h9h)

暂无答案!

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

相关问题