@Override
public void setInputFile( String file ) throws Exception {
inClassloader( () -> {
S3NCredentialUtils.applyS3CredentialsToHadoopConfigurationIfNecessary( file, job.getConfiguration() );
Path filePath = new Path( S3NCredentialUtils.scrubFilePathIfNecessary( file ) );
FileSystem fs = FileSystem.get( filePath.toUri(), job.getConfiguration() );
if ( !fs.exists( filePath ) ) {
throw new NoSuchFileException( file );
}
if ( fs.getFileStatus( filePath ).isDirectory() ) {
ParquetInputFormat.setInputPaths( job, filePath );
ParquetInputFormat.setInputDirRecursive( job, true );
} else {
ParquetInputFormat.setInputPaths( job, filePath.getParent() );
ParquetInputFormat.setInputDirRecursive( job, false );
ParquetInputFormat.setInputPathFilter( job, ReadFileFilter.class );
job.getConfiguration().set( ReadFileFilter.FILTER_DIR, filePath.getParent().toString() );
job.getConfiguration().set( ReadFileFilter.FILTER_FILE, filePath.toString() );
}
} );
}