Python 通过PRESTO连接器选择随机数据样本
我目前正在寻找从表中获取随机数据样本的最佳方法(例如在HIVE中)。我知道PRESTO提供了RANDOM()函数或TABLESAMPLE BERNOULLI/SYSTEM。问题是当查询具有大量记录的表时,需要花费大量时间,这不适合与JayDeBeApi合作,因为JayDeBeApi可能会关闭连接,等待响应的时间过长 我更喜欢使用TABLESAMPLE BERNOULLI/SYSTEM,它将要获取的记录的百分比作为参数。与ORACLE、SAP或MSSQL数据库相比,它们能够通过精确的百分比,即0.003123412%,尽管功能非常相似,但PRESTO不允许您通过,并且所有内容都在1-100%范围内转换Python 通过PRESTO连接器选择随机数据样本,python,database,presto,Python,Database,Presto,我目前正在寻找从表中获取随机数据样本的最佳方法(例如在HIVE中)。我知道PRESTO提供了RANDOM()函数或TABLESAMPLE BERNOULLI/SYSTEM。问题是当查询具有大量记录的表时,需要花费大量时间,这不适合与JayDeBeApi合作,因为JayDeBeApi可能会关闭连接,等待响应的时间过长 我更喜欢使用TABLESAMPLE BERNOULLI/SYSTEM,它将要获取的记录的百分比作为参数。与ORACLE、SAP或MSSQL数据库相比,它们能够通过精确的百分比,即0.
有人知道如何解决这个问题吗?我希望与TABLESAMPLE BERNOULLI/SYSTEM合作避免可能无法按预期工作的限制条款。这可以通过在科学记数法中传递数字来实现。对于Presto 341(即将发布的版本),您可以
... FROM my_table TABLESAMPLE BERNOULLI (0.01)
正如@michal.kyjovsky指出的,旧版本有一个bug,需要使用科学符号来获得低于百分比的采样率
... FROM my_table TABLESAMPLE BERNOULLI (0.01e0)
这是解决
表示例BERNOULLI(0.1)
今天无法正常工作这一问题的一种方法。当我正在修复时,请在提交新问题。