apache_beam.io.filesystem module¶
File system abstraction for file-based sources and sinks.
- Note to implementors:
- “path” arguments will be URLs in the form scheme://foo/bar. The exception is LocalFileSystem, which gets unix-style paths in the form /foo/bar.
- 
class apache_beam.io.filesystem.CompressionTypes[source]¶
- Bases: - object- Enum-like class representing known compression types. - 
AUTO= 'auto'¶
 - 
BZIP2= 'bzip2'¶
 - 
DEFLATE= 'deflate'¶
 - 
ZSTD= 'zstd'¶
 - 
GZIP= 'gzip'¶
 - 
LZMA= 'lzma'¶
 - 
UNCOMPRESSED= 'uncompressed'¶
 
- 
- 
class apache_beam.io.filesystem.CompressedFile(fileobj, compression_type='gzip', read_size=16777216)[source]¶
- Bases: - object- File wrapper for easier handling of compressed files. - 
seekable¶
 - 
seek(offset, whence=0)[source]¶
- Set the file’s current offset. - Seeking behavior: - seeking from the end os.SEEK_ENDthe whole file is decompressed once to determine its size. Therefore it is preferred to useos.SEEK_SEToros.SEEK_CURto avoid the processing overhead
- seeking backwards from the current position rewinds the file to 0and decompresses the chunks to the requested offset
- seeking is only supported in files opened for reading
- if the new offset is out of bound, it is adjusted to either 0orEOF.
 - Parameters: - offset (int) – seek offset in the uncompressed content represented as number
- whence (int) – seek mode. Supported modes are os.SEEK_SET(absolute seek),os.SEEK_CUR(seek relative to the current position), andos.SEEK_END(seek relative to the end, offset should be negative).
 - Raises: - IOError– When this buffer is closed.
- ValueError– When whence is invalid or the file is not seekable
 
- seeking from the end 
 
- 
- 
class apache_beam.io.filesystem.FileMetadata(path: str, size_in_bytes: int, last_updated_in_seconds: float = 0.0)[source]¶
- Bases: - object- Metadata about a file path that is the output of FileSystem.match. - Fields:
- path: [Required] file path. size_in_bytes: [Required] file size in bytes. last_updated_in_seconds: [Optional] last modified timestamp of the file, or valued 0.0 if not specified.
 
- 
class apache_beam.io.filesystem.MatchResult(pattern, metadata_list)[source]¶
- Bases: - object- Result from the - FileSystemmatch operation which contains the list of matched- FileMetadata.
- 
class apache_beam.io.filesystem.FileSystem(pipeline_options)[source]¶
- Bases: - apache_beam.utils.plugin.BeamPlugin- A class that defines the functions that can be performed on a filesystem. - All methods are abstract and they are for file system providers to implement. Clients should use the FileSystems class to interact with the correct file system based on the provided file pattern scheme. - Parameters: - pipeline_options – Instance of - PipelineOptionsor dict of options and values (like- RuntimeValueProvider.runtime_options).- 
CHUNK_SIZE= 1¶
 - 
join(basepath, *paths)[source]¶
- Join two or more pathname components for the filesystem - Parameters: - basepath – string path of the first component of the path
- paths – path components to be added
 - Returns: full path after combining all the passed components 
 - 
split(path)[source]¶
- Splits the given path into two parts. - Splits the path into a pair (head, tail) such that tail contains the last component of the path and head contains everything up to that. - For file-systems other than the local file-system, head should include the prefix. - Parameters: - path – path as a string - Returns: - a pair of path components as strings. 
 - 
mkdirs(path)[source]¶
- Recursively create directories for the provided path. - Parameters: - path – string path of the directory structure that should be created - Raises: - IOError– if leaf directory already exists.
 - 
match_files(file_metas, pattern)[source]¶
- Filter - FileMetadataobjects by pattern- Parameters: - file_metas (list of FileMetadata) – Files to consider when matching
- pattern (str) – File pattern
 - See also - Returns: - Generator of matching - FileMetadata
- file_metas (list of 
 - 
static translate_pattern(pattern)[source]¶
- Translate a pattern to a regular expression. There is no way to quote meta-characters. - Pattern syntax:
- The pattern syntax is based on the fnmatch syntax, with the following differences: - *Is equivalent to- [^/\]*rather than- .*.
- **Is equivalent to- .*.
 
 - See also - match()uses this method- This method is based on Python 2.7’s fnmatch.translate. The code in this method is licensed under PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2. 
 - 
match(patterns, limits=None)[source]¶
- Find all matching paths to the patterns provided. - See also - Patterns ending with ‘/’ or ‘’ will be appended with ‘*’. - Parameters: - patterns – list of string for the file path pattern to match against
- limits – list of maximum number of responses that need to be fetched
 - Returns: list of - MatchResultobjects.- Raises: - BeamIOError– if any of the pattern match operations fail
 - 
create(path, mime_type='application/octet-stream', compression_type='auto')[source]¶
- Returns a write channel for the given file path. - Parameters: - path – string path of the file object to be written to the system
- mime_type – MIME type to specify the type of content in the file object
- compression_type – Type of compression to be used for this object
 - Returns: file handle with a close function for the user to use 
 - 
open(path, mime_type='application/octet-stream', compression_type='auto')[source]¶
- Returns a read channel for the given file path. - Parameters: - path – string path of the file object to be read
- mime_type – MIME type to specify the type of content in the file object
- compression_type – Type of compression to be used for this object
 - Returns: file handle with a close function for the user to use 
 - 
copy(source_file_names, destination_file_names)[source]¶
- Recursively copy the file tree from the source to the destination - Parameters: - source_file_names – list of source file objects that needs to be copied
- destination_file_names – list of destination of the new object
 - Raises: - BeamIOError– if any of the copy operations fail
 - 
rename(source_file_names, destination_file_names)[source]¶
- Rename the files at the source list to the destination list. Source and destination lists should be of the same size. - Parameters: - source_file_names – List of file paths that need to be moved
- destination_file_names – List of destination_file_names for the files
 - Raises: - BeamIOError– if any of the rename operations fail
 - 
exists(path)[source]¶
- Check if the provided path exists on the FileSystem. - Parameters: - path – string path that needs to be checked. - Returns: boolean flag indicating if path exists 
 - 
size(path)[source]¶
- Get size in bytes of a file on the FileSystem. - Parameters: - path – string filepath of file. - Returns: int size of file according to the FileSystem. - Raises: - BeamIOError– if path doesn’t exist.
 - 
last_updated(path)[source]¶
- Get UNIX Epoch time in seconds on the FileSystem. - Parameters: - path – string path of file. - Returns: float UNIX Epoch time - Raises: - BeamIOError– if path doesn’t exist.
 - 
checksum(path)[source]¶
- Fetch checksum metadata of a file on the - FileSystem.- This operation returns checksum metadata as stored in the underlying FileSystem. It should not need to read file data to obtain this value. Checksum type and format are FileSystem dependent and are not compatible between FileSystems. FileSystem implementations may return file size if a checksum isn’t available. - Parameters: - path – string path of a file. - Returns: string containing checksum - Raises: - BeamIOError– if path isn’t a file or doesn’t exist.
 - 
metadata(path)[source]¶
- Fetch metadata of a file on the - FileSystem.- This operation returns metadata as stored in the underlying FileSystem. It should not need to read file data to obtain this value. For web based file systems, this method should also incur as few as possible requests. - Parameters: - path – string path of a file. - Returns: - FileMetadata.- Raises: - BeamIOError– if path isn’t a file or doesn’t exist.
 
-