@Internal public class PartitionLoader extends Object implements Closeable
This provide two interface to load: 1.loadPartition(java.util.LinkedHashMap<java.lang.String, java.lang.String>, java.util.List<org.apache.flink.core.fs.Path>, boolean)
: load temporary partitioned
files, if it is new partition, will create partition to meta store. 2.loadNonPartition(java.util.List<org.apache.flink.core.fs.Path>, boolean)
:
just rename all files to final output path.
TODO: src and dest may be on different FS.
Constructor and Description |
---|
PartitionLoader(boolean overwrite,
FileSystem sourceFs,
TableMetaStoreFactory factory,
boolean isToLocal,
ObjectIdentifier identifier,
List<PartitionCommitPolicy> policies) |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
loadEmptyPartition(LinkedHashMap<String,String> partSpec)
The flink job does not write data to the partition, but the corresponding partition needs to
be created or updated.
|
void |
loadNonPartition(List<Path> srcPaths,
boolean srcPathIsDir)
Load a non-partition files to output path.
|
void |
loadPartition(LinkedHashMap<String,String> partSpec,
List<Path> srcPaths,
boolean srcPathIsDir)
Load a single partition.
|
public PartitionLoader(boolean overwrite, FileSystem sourceFs, TableMetaStoreFactory factory, boolean isToLocal, ObjectIdentifier identifier, List<PartitionCommitPolicy> policies) throws Exception
Exception
public void loadPartition(LinkedHashMap<String,String> partSpec, List<Path> srcPaths, boolean srcPathIsDir) throws Exception
partSpec
- the specification for the single partitionsrcPaths
- the paths for the files used to load to the single partitionsrcPathIsDir
- whether the every path in is directory or not. If true,
it will load the files under the directory of the every path. If false, every path in
is considered as single file, and it will load the single file for
every path.Exception
public void loadNonPartition(List<Path> srcPaths, boolean srcPathIsDir) throws Exception
srcPaths
- the paths for the files used to load to the single partitionsrcPathIsDir
- whether the every path in is directory or not. If true,
it will load the files under the directory of the every path. If false, every path in
is considered as single file, and it will load the single file for
every path.Exception
public void loadEmptyPartition(LinkedHashMap<String,String> partSpec) throws Exception
The partition does not exist, create it.
The partition exists:
if overwrite is true, delete the path, then create it; if overwrite is false, do nothing;
Exception
public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
IOException
Copyright © 2014–2024 The Apache Software Foundation. All rights reserved.