在R中通过paws包查询AWS Athena时,如何获得完整结果?

在R中通过paws包查询AWS Athena时,如何获得完整结果?,r,amazon-web-services,aws-sdk,amazon-athena,R,Amazon Web Services,Aws Sdk,Amazon Athena,我一直试图通过paws包从雅典娜获取数据到R。到目前为止,我已经成功地运行了查询并返回了一些结果。但我得到的默认最大值是1000。我已经在Python中看到了Boto3库的一些解决方案,但即使语法类似,我也可以像Boto3一样调用分页函数 有人知道如何分页,或者如何使用函数的下一个标记参数吗 下面是我的代码的样子: 用于连接到AWS服务的SDK 创建雅典娜对象: 你可能想考虑一下这个包裹。这个包使用paws SDK(DBI接口)将R连接到Athena。它解决了限制为1000行的问题。因此,您的上

我一直试图通过paws包从雅典娜获取数据到R。到目前为止,我已经成功地运行了查询并返回了一些结果。但我得到的默认最大值是1000。我已经在Python中看到了Boto3库的一些解决方案,但即使语法类似,我也可以像Boto3一样调用分页函数

有人知道如何分页,或者如何使用函数的下一个标记参数吗

下面是我的代码的样子:

用于连接到AWS服务的SDK 创建雅典娜对象:
你可能想考虑一下这个包裹。这个包使用paws SDK(DBI接口)将R连接到Athena。它解决了限制为1000行的问题。因此,您的上述查询将如下所示:

library(DBI)

con = dbConnect(noctua::athena(), s3_staging_dir = "s3://aws-athena...")

dbGetQuery(con, "SELECT * FROM db.table LIMIT 100000")
该软件包还集成到
dplyr

library(DBI)
library(dplyr)

con = dbConnect(noctua::athena(), 
                schema_name = "db", 
                s3_staging_dir = "s3://aws-athena...")

tbl(con, "table"))

谢谢,这就成功了!我确实有一个预订,它可以很好地处理两个100K行,但当我尝试1MIL或更高时,我得到了一个限制异常。我想需要一些背景知识,我正在尝试在AWS Sagemaker中运行我的代码。因此,为了获得更多的数据,我应该创建一个更大的实例,还是需要在帐户管理方面做一些事情?我最初的猜测是仔细检查sagemaker实例有多大,因为它可能会耗尽您的ram。如果不是这样的话,你能在以下地点开出罚单:。这将有助于确定在传输大数据时paws sdk是否存在问题。或者,您可以尝试RAthena,它的功能与noctua完全相同,但它使用boto3作为连接。最后,如果是ram问题,请针对大于内存的查询提出功能请求,我是noctua的作者,很乐意为packageAwesome开发进一步的改进,我将对此进行研究,并在需要时提出请求。谢谢你的帮助!
query <- athena$start_query_execution(QueryString = '
                                                    SELECT *
                                                    FROM db.table
                                                    LIMIT 100000
                                                    ',
                                       ResultConfiguration = list(OutputLocation =
                                                                  "s3://aws-athena..."
                                                                  )
                                      )
result <- athena$get_query_execution(QueryExecutionId = query$QueryExecutionId)
output <- athena$get_query_results(QueryExecutionId = query$QueryExecutionId)
data <- dplyr::as_tibble(t(matrix(unlist(output$ResultSet$Rows),nrow = length(unlist(output$ResultSet$Rows[1])))))

colnames(data) <- as.character(unlist(data[1, ]))
data <- data[-1, ]
library(DBI)

con = dbConnect(noctua::athena(), s3_staging_dir = "s3://aws-athena...")

dbGetQuery(con, "SELECT * FROM db.table LIMIT 100000")
library(DBI)
library(dplyr)

con = dbConnect(noctua::athena(), 
                schema_name = "db", 
                s3_staging_dir = "s3://aws-athena...")

tbl(con, "table"))