2017-06-15 92 views
1

rxImport潛在的問題,我有我的SQLServer,這是我下面的行進口SQL連接表:在RevoScaleR

master_table <- RxSqlServerData(etc...) 

然後,我的目標是保存/導入使用rxImport這表它保存到一個文件.xdf,我已經叫readTest <- 'read_test.xdf

表是相當大的,所以我在rxImport設置此:

rxImport(master_table, outFile=readTest, rowsPerRead=100000,reportProgress=1) 

但是,它已經運行現在10分鐘,並且正在讀取/導入的行的NO進度正在打印在屏幕上。我做得對嗎?我想輸出類似的「進度」,當像RxForest或類似的運行ML算法時打印?

謝謝。

回答

1

與SQL Server數據庫的連接可能相對較慢,報表進度只會在一批行完成時顯示進度。如果這些行相對較大,您可能會在終端上看到一段時間沒有返回。

爲了獲得rxImport()的最佳性能,請確保rowsPerRead是本地機器內存可以處理的最大可能大小。這會使進度報告不那麼頻繁,但它會爲您提供更快的進口時間。唯一不適用的情況是導入XDF文件時。

+0

嗨,謝謝你。即使在某些情況下,我在xdf文件上執行諸如rxSummary()之類的操作,並且我的文件具有10,000,000行,但我設置了rowsperRead = 10,000和reportProgress = 1,但它只打印出來:rxImport('sampleonemil.csv ',outFile = readTest,rowsPerRead = 10000,reportProgress = 1,overwrite = T) 已處理的行數:10000000,它不顯示行按照我指定的10,000批次處理,它只是完成整個事情這正確的行爲? –

+1

我剛剛在本地測試了一個像這樣的例子,當我不指定reportProgress時,我得到每批行的報告。如果我指定reportProgess = 1,則只需在rxImport()完成時獲取輸出。我相信你應該指定reportProgress = 4(如果未指定,這是默認值)。這個文件可以更清楚。 –

+0

我想我明白了。我在我的機器上安裝了R-Server(開發人員版本),進度信息開始出現。 R-客戶端在塊處理方面似乎非常有限(正如文檔所暗示的......),你是否也在R-Server上運行? –