package water.fvec; import water.*; import com.amazonaws.services.s3.model.S3ObjectSummary; // A distributed file-backed Vector // public class S3FileVec extends FileVec { // Make a new NFSFileVec key which holds the filename implicitly. // This name is used by the DVecs to load data on-demand. public static Key make(S3ObjectSummary obj) { Futures fs = new Futures(); Key key = make(obj, fs); fs.blockForPending(); return key; } public static Key make(S3ObjectSummary obj, Futures fs) { String fname = obj.getKey(); Key k = Key.make("s3://" + obj.getBucketName() + "/" + fname); long size = obj.getSize(); Key k2 = Vec.newKey(k); new Frame(k).delete_and_lock(null); // Insert the top-level FileVec key into the store Vec v = new S3FileVec(k2,size); DKV.put(k2, v, fs); Frame fr = new Frame(k,new String[]{fname},new Vec[]{v}); fr.update(null); fr.unlock(null); return k; } private S3FileVec(Key key, long len) {super(key,len,Value.S3);} }