RをTeradataに接続して、分析のためにデータを直接Rにプルしようとしています。しかし、私はのエラーを取得しています、
_Error in .jcall(rp, "I", "fetch", stride, block) :
Java.lang.OutOfMemoryError: Java heap space
_
私はRオプションを設定して、JVMの最大ヒープサイズを増やすことを試みました:
_options(Java.parameters = "-Xmx8g")
_
また、Java rJava関数_.jinit
_のパラメーターを.jinit(parameters="-Xmx8g")
として初期化しようとしましたが、まだ失敗しました。
計算されるデータのサイズは約3G(実際には3G未満)でなければなりません。
追加のメモリを割り当てていることを確認する必要がありますbefore rJavaまたは他のパッケージをロードしています。最初に環境を(rm(list = ls())
を介して)ワイプし、必要に応じてR/Rstudioを再起動し、スクリプトの先頭でオプションを変更します。
options(Java.parameters = "-Xmx8000m")
どういうわけか、この問題は再現性のない方法であり、-Xmx8g
しかし、ランダムに問題が発生します。
私は今、別のガベージコレクターを使用してオプションを見つけました
options(Java.parameters = c("-XX:+UseConcMarkSweepGC", "-Xmx8192m"))
library(xlsx)
スクリプトの冒頭。これまでのところ、問題は再び発生していません。
編集:
私は、複数のJavaパラメーターを組み合わせることさえできることを理解しました。このソリューションは今のところ失敗しませんでした。
編集2:このソリューションに関するもう1つのことは、他のパッケージをロードする前にoptions
コマンドを実行する方が節約できるということです。いくつかのパッケージは、いくつかのJavaを単独でロードするため、Rセッションの開始時にオプションを設定する必要があります!