Можно ли читать и писать Parquet с использованием Java без зависимости от Hadoop и HDFS?

Я искал решение этого вопроса.

Мне кажется, что нет способа встроить чтение и запись формата Parquet в Java-программу без учета зависимостей от HDFS и Hadoop. Это правильно?

Я хочу читать и писать на клиентском компьютере вне кластера Hadoop.

Я начал волноваться по поводу Apache Drill, но похоже, что он должен работать как отдельный процесс. Что мне нужно, так это способность в процессе чтения и записи файла в формате Parquet.

1 ответ

Решение

Вы можете написать паркетный формат вне кластера hadoop, используя Java Parquet Client API.

Вот пример кода в Java, который записывает формат партера на локальный диск.

{
final String schemaLocation = "/tmp/avro_format.json";
final Schema avroSchema = new Schema.Parser().parse(new File(schemaLocation));
final MessageType parquetSchema = new AvroSchemaConverter().convert(avroSchema);
final WriteSupport<Pojo> writeSupport = new AvroWriteSupport(parquetSchema, avroSchema);
final String parquetFile = "/tmp/parquet/data.parquet";
final Path path = new Path(parquetFile);
ParquetWriter<GenericRecord> parquetWriter = new ParquetWriter(path, writeSupport, CompressionCodecName.SNAPPY, BLOCK_SIZE, PAGE_SIZE);
final GenericRecord record = new GenericData.Record(avroSchema);
record.put("id", 1);
record.put("age", 10);
record.put("name", "ABC");
record.put("place", "BCD");
parquetWriter.write(record);
parquetWriter.close();
}

avro_format.json,

{
   "type":"record",
   "name":"Pojo",
   "namespace":"com.xx.test",
   "fields":[
      {
         "name":"id",
         "type":[
            "int",
            "null"
         ]
      },
      {
         "name":"age",
         "type":[
            "int",
            "null"
         ]
      },
      {
         "name":"name",
         "type":[
            "string",
            "null"
         ]
      },
      {
         "name":"place",
         "type":[
            "string",
            "null"
         ]
      }
   ]
}

Надеюсь это поможет.

Другие вопросы по тегам