public static ParseSetup guessSetup ( Key [ ] fkeys , ParseSetup userSetup ) { //Guess setup of each file and collect results GuessSetupTsk t = new GuessSetupTsk ( userSetup ) ; t . doAll ( fkeys ) . getResult ( ) ; //Calc chunk-size // FIXME: should be a parser specific - or at least parser should be able to override defaults Iced ice = DKV . getGet ( fkeys [ 0 ] ) ; if ( ice instanceof Frame && ( ( Frame ) ice ) . vec ( 0 ) instanceof UploadFileVec ) { t . _gblSetup . _chunk_size = FileVec . DFLT_CHUNK_SIZE ; } else { t . _gblSetup . _chunk_size = FileVec . calcOptimalChunkSize ( t . _totalParseSize , t . _gblSetup . _number_columns , t . _maxLineLength , Runtime . getRuntime ( ) . availableProcessors ( ) , H2O . getCloudSize ( ) , false /*use new heuristic*/ , true ) ; } return t . _gblSetup ; }
Discover the parse setup needed to correctly parse all files . This takes a ParseSetup as guidance . Each file is examined individually and then results merged . If a conflict exists between any results all files are re - examined using the best guess from the first examination .