2016-05-26 4 views
1

RODBCパッケージのsqlQuery関数を使用してImpalaデータベースからデータを取得しようとしています。私が得た結果は、あるクエリーの実行からまったく同じクエリーの別の実行に変わります。RODBCのsqlQueryがImpala DBを照会するときに常に同じデータを返すわけではないのはなぜですか?

私が手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 

このクエリは、実際には142561×220データフレームを返す必要があります。

一方、次のクエリは、常に同じ(正しい)結果を返す:私の問題は、インパラがよく実行するための十分なメモリを持っていなかったということだったようです

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

32ビットまたは64ビットのODBCを使用していますか? –

+0

@GeorgeDontas 64bit – mdebbiche

+0

'believeNRows'引数を' FALSE'に設定しようとしましたか? – eminik

答えて

関連する問題