为什么在查询 Impala 数据库时,来自 RODBC 的 sqlQuery 并不总是返回相同的数据?

Why is sqlQuery from RODBC not always returning the same data when querying an Impala DB?

我正在尝试使用 RODBC 包中的 sqlQuery 函数从 Impala 数据库中获取一些数据。从一次执行查询到另一次执行完全相同的查询,我得到的结果发生了变化。

我得到的data.frame并不总是有相同的行数:

library("RODBC")
conn <- odbcConnect("Cloudera Impala DSN;host=mydb;port=21050")    
df<-sqlQuery(conn, "select * from hydrau.hydr where flight= 'V0051'")
dim(df)
[1] 26600   220
df<-sqlQuery(conn, "select * from hydrau.hydr where flight= 'V0051'")
dim(df)
[1] 142561   220
df<-sqlQuery(conn, "select * from hydrau.hydr where flight= 'V0051'")
dim(df)
[1] 23500   220

这个查询实际上应该 return 一个 142561 x 220 的数据框。

另一方面,以下查询总是 return 相同(正确)的结果:

sqlQuery(conn, "select count(*) from hydr where flight= 'V0051' ")
  count(*)
1   142561

看来我的问题是 Impala 内存不足,无法正常运行。