Class TransformSplit

    • Constructor Detail

      • TransformSplit

        public TransformSplit​(@NonNull
                              @NonNull BaseInputSplit sourceSplit,
                              @NonNull
                              @NonNull TransformSplit.URITransform transform)
                       throws URISyntaxException
        Apply a given transformation to the raw URI objects
        Parameters:
        sourceSplit - the split with URIs to transform
        transform - transform operation that returns a new URI based on an input URI
        Throws:
        URISyntaxException - thrown if the transformed URI is malformed
    • Method Detail

      • ofSearchReplace

        public static TransformSplit ofSearchReplace​(@NonNull
                                                     @NonNull BaseInputSplit sourceSplit,
                                                     @NonNull
                                                     @NonNull String search,
                                                     @NonNull
                                                     @NonNull String replace)
                                              throws URISyntaxException
        Static factory method, replace the string version of the URI with a simple search-replace pair
        Parameters:
        sourceSplit - the split with URIs to transform
        search - the string to search
        replace - the string to replace with
        Throws:
        URISyntaxException - thrown if the transformed URI is malformed
      • updateSplitLocations

        public void updateSplitLocations​(boolean reset)
        Description copied from interface: InputSplit
        Refreshes the split locations if needed in memory. (Think a few file gets added)
      • needsBootstrapForWrite

        public boolean needsBootstrapForWrite()
        Description copied from interface: InputSplit
        Returns true if this InputSplit needs bootstrapping for writing. A simple example of needing bootstrapping is for FileSplit where there is only a directory existing, but no file to write to
        Returns:
        true if this input split needs bootstrapping for writing to or not
      • bootStrapForWrite

        public void bootStrapForWrite()
        Description copied from interface: InputSplit
        Bootstrap this input split for writing. This is for use with RecordWriter
      • openOutputStreamFor

        public OutputStream openOutputStreamFor​(String location)
                                         throws Exception
        Description copied from interface: InputSplit
        Open an OutputStream for the given location. Note that the user is responsible for closing the associated output stream.
        Parameters:
        location - the location to open the output stream for
        Returns:
        the output input stream
        Throws:
        Exception
      • openInputStreamFor

        public InputStream openInputStreamFor​(String location)
                                       throws Exception
        Description copied from interface: InputSplit
        Open an InputStream for the given location. Note that the user is responsible for closing the associated input stream.
        Parameters:
        location - the location to open the input stream for
        Returns:
        the opened input stream
        Throws:
        Exception
      • reset

        public void reset()
        Description copied from interface: InputSplit
        Reset the InputSplit without reinitializing it from scratch. In many cases, this is a no-op. For InputSplits that have randomization: reset should shuffle the order.
      • resetSupported

        public boolean resetSupported()
        Returns:
        True if the reset() method is supported (or is a no-op), false otherwise. If false is returned, reset() may throw an exception