private synchronized void processRequiredFiles(String[] requiredFiles) { if (!_requiredFilesProcessed) { _stdUdf.processRequiredFiles(Arrays.stream(requiredFiles) .map(path -> Path.getPathWithoutSchemeAndAuthority(new Path(path)).toString()) .toArray(String[]::new)); _requiredFilesProcessed = true; } } }
private synchronized void processRequiredFiles() { if (!_requiredFilesProcessed) { String[] localFiles = Arrays.stream(_distributedCacheFiles).map(distributedCacheFile -> { try { return getLocalFilePath(distributedCacheFile).toString(); } catch (IOException e) { throw new RuntimeException("Failed to resolve path: [" + distributedCacheFile + "].", e); } } ).toArray(String[]::new); _stdUdf.processRequiredFiles(localFiles); _requiredFilesProcessed = true; } }
private synchronized void processRequiredFiles() { if (!_requiredFilesProcessed) { String[] localFiles = Arrays.stream(_distributedCacheFiles).map(distributedCacheFile -> { try { return getLocalFilePath(distributedCacheFile).toString(); } catch (IOException e) { throw new RuntimeException("Failed to resolve path: [" + distributedCacheFile + "].", e); } } ).toArray(String[]::new); _stdUdf.processRequiredFiles(localFiles); _requiredFilesProcessed = true; } }
private synchronized void processRequiredFiles(StdUDF stdUDF, String[] requiredFiles) { if (_requiredFilesNextRefreshTime < System.currentTimeMillis()) { try (ThreadContextClassLoader ignored = new ThreadContextClassLoader(getClass().getClassLoader())) { String[] copiedFiles = new String[requiredFiles.length]; FileSystemClient client = new FileSystemClient(); for (int i = 0; i < requiredFiles.length; i++) { String localFilename = client.copyToLocalFile(requiredFiles[i]); copiedFiles[i] = localFilename; } stdUDF.processRequiredFiles(copiedFiles); // Determine how many times _refreshIntervalMillis needs to be added to go above currentTimeMillis int refreshIntervalFactor = (int) Math.ceil( (System.currentTimeMillis() - _requiredFilesNextRefreshTime) / (double) getRefreshIntervalMillis()); _requiredFilesNextRefreshTime += getRefreshIntervalMillis() * Math.max(1, refreshIntervalFactor); } } }
private synchronized void processRequiredFiles(StdUDF stdUDF, String[] requiredFiles) { if (_requiredFilesNextRefreshTime < System.currentTimeMillis()) { try (ThreadContextClassLoader ignored = new ThreadContextClassLoader(getClass().getClassLoader())) { String[] copiedFiles = new String[requiredFiles.length]; FileSystemClient client = new FileSystemClient(); for (int i = 0; i < requiredFiles.length; i++) { String localFilename = client.copyToLocalFile(requiredFiles[i]); copiedFiles[i] = localFilename; } stdUDF.processRequiredFiles(copiedFiles); // Determine how many times _refreshIntervalMillis needs to be added to go above currentTimeMillis int refreshIntervalFactor = (int) Math.ceil( (System.currentTimeMillis() - _requiredFilesNextRefreshTime) / (double) getRefreshIntervalMillis()); _requiredFilesNextRefreshTime += getRefreshIntervalMillis() * Math.max(1, refreshIntervalFactor); } } }