We are hashing 4 columns and using proc groovy to do so. When we run our script in small time increments, versus an entire year., we have ZERO issues. Our smaller datasets can be done in quarters but our larger ones would have to be done in much smaller time frames, taking weeks to piece together,as the max amount of rows we can write at once is 140K. The crazy part is we always hit in the 144K range and it errors out on us. Any ideas as to what could be causing the issue?
***The line and column numbers always change and the amount of observations is always in 144K range***
Error: Object instantiation failed at line 298 column 62.
ERROR: DATA STEP Component Object failure.
Aborted during the Execution phase.
NOTE: There were 144595 observations read from the data set FY16.
filename cp temp;
proc groovy classpath=cp;
submit parseonly;
import java.security.MessageDigest
class Sha1 {
public String encode(String message) {
return new BigInteger(1, MessageDigest.getInstance("SHA1").digest(message.getBytes())).toString(16);
}
}
endsubmit;
quit;
I know nothing of proc groovy, but the message looks like what happens when a hash table runs out of memory.
1. Have you tried increasing the amount of memory available to see if things improve?
2. SAS 9.4 has a new SHA1 function. Could this be used?
SAS is headed back to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team.
Interested in speaking? Content from our attendees is one of the reasons that makes SAS Innovate such a special event!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.