Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 通过PRESTO连接器选择随机数据样本_Python_Database_Presto - Fatal编程技术网

Python 通过PRESTO连接器选择随机数据样本

Python 通过PRESTO连接器选择随机数据样本,python,database,presto,Python,Database,Presto,我目前正在寻找从表中获取随机数据样本的最佳方法(例如在HIVE中)。我知道PRESTO提供了RANDOM()函数或TABLESAMPLE BERNOULLI/SYSTEM。问题是当查询具有大量记录的表时,需要花费大量时间,这不适合与JayDeBeApi合作,因为JayDeBeApi可能会关闭连接,等待响应的时间过长 我更喜欢使用TABLESAMPLE BERNOULLI/SYSTEM,它将要获取的记录的百分比作为参数。与ORACLE、SAP或MSSQL数据库相比,它们能够通过精确的百分比,即0.

我目前正在寻找从表中获取随机数据样本的最佳方法(例如在HIVE中)。我知道PRESTO提供了RANDOM()函数或TABLESAMPLE BERNOULLI/SYSTEM。问题是当查询具有大量记录的表时,需要花费大量时间,这不适合与JayDeBeApi合作,因为JayDeBeApi可能会关闭连接,等待响应的时间过长

我更喜欢使用TABLESAMPLE BERNOULLI/SYSTEM,它将要获取的记录的百分比作为参数。与ORACLE、SAP或MSSQL数据库相比,它们能够通过精确的百分比,即0.003123412%,尽管功能非常相似,但PRESTO不允许您通过,并且所有内容都在1-100%范围内转换


有人知道如何解决这个问题吗?我希望与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)
今天无法正常工作这一问题的一种方法。当我正在修复时,请在提交新问题。