8 Kasım 2022 Salı

Hazelcast Jet FileSourcesBuilder Sınıfı - BatchSource Döner

Giriş
Şu satırı dahil ederiz
import com.hazelcast.jet.pipeline.file.FileSourcesBuilder;
Not : İsmi FileSourceBuilder olan iki tane sınıf var.
1. com.hazelcast.jet.pipeline.FileSourcesBuilder - Kullanmayın
2. com.hazelcast.jet.pipeline.file.FileSourcesBuilder 

FileSources.files() metodu da bu sınıfı döner.
 
build
Metodun içi şöyle
public BatchSource<T> build() {
ProcessorMetaSupplier metaSupplier = buildMetaSupplier(); return Sources.batchFromProcessor("...", metaSupplier); }
buildMetaSupplier metodu
Metodun içi şöyle
public ProcessorMetaSupplier buildMetaSupplier() {
  ...
  FileSourceConfiguration<T> fsc = new FileSourceConfiguration<>(
    path, glob, format, sharedFileSystem, ignoreFileNotFound, options
  );

  if (shouldUseHadoop()) {
    ...
  }
  return new LocalFileSourceFactory().create(fsc);
}
format metodu
Okunacak dosya formatı ve çıktı olarak kullanılacak sınıf belirtilir. Şöyle yarız
FileFormat.avro(Foo.class)
FileFormat.csv(Foo.class)
FileFormat.json(Foo.class))
FileFormat.text()
FileFormat.<SpecificUser>parquet()
FileFormat.bytes()
Örnek - CSV
Şöyle yaparız
List<String> fieldNames = new ArrayList<>();
fieldNames.add("foo");
fieldNames.add("bar");
BatchSource<String[]> source = FileSources.files("directory")
    .glob("file.csv")
    .format(FileFormat.csv(fieldNames))
    .build();
Örnek - parquet
Şöyle yaparız. Burada Apache Parquet formatında bir şey okunuyor
BatchSource<SpecificUser> source = FileSources.files("/data")
  .glob("users.parquet")
  .format(FileFormat.<SpecificUser>parquet())
  .useHadoopForLocalFiles(true)
  .build();
glob metodu
Örnek
Şöyle yaparız. Her dosyayı satır satır okur
Pipeline p = Pipeline.create();
p.readFrom(Sources.filesBuilder(directory.getPath())
    .glob("*")
    .build(Util::entry))
.writeTo(Sinks.list(list));



Hiç yorum yok:

Yorum Gönder

THIRD-PARTY.txt Dosyası

Kullanılan harici kütüphanelerin sürümleri bu dosyada Dosyanın yolu şöyle hazelcast/licenses/THIRD-PARTY.txt