Прочитанный паркетный файл Java в вывод JSON - PullRequest
0 голосов
/ 29 августа 2018

Чтение файла паркета работает, но получает формат с отступом вместо желаемого формата вывода JSON. Есть идеи? Я думал, что мне может понадобиться изменить GroupRecordConverter, но не смог найти много документации. Если можете указать мне на это, также будет полезно. Большое спасибо за помощь.

long num = numLines;
try {
  ParquetMetadata readFooter = ParquetFileReader.readFooter(conf, path, ParquetMetadataConverter.NO_FILTER);
  MessageType schema = readFooter.getFileMetaData().getSchema();
  ParquetFileReader r = new ParquetFileReader(conf,path,readFooter);

  PageReadStore pages = null;
  try{
    while(null != (pages = r.readNextRowGroup())) {
      final long rows = pages.getRowCount();
      System.out.println("Number of rows: " + rows);

      final MessageColumnIO columnIO = new ColumnIOFactory().getColumnIO(schema);
      final RecordReader recordReader = columnIO.getRecordReader(pages, new GroupRecordConverter(schema));
      String sTemp = "";
      for(int i=0; i<rows && num-->0; i++) {
        System.out.println(recordReader.read().toString())
      }
    }
  }
}

Текущий выход с отступом:

data1: value1
data2: value2
models
  map
    key: data3
    value
      array: value3
  map
    key: data4
    value
      array: value4
data5: value5
...

Требуемый вывод JSON:

"data1": "value1",
"data2": "value2",
"models": {
    "data3": [
        "value3"
    ],
    "data4": [
        "value4"
    ]
},
"data5": "value5"
...

1 Ответ

0 голосов
/ 10 сентября 2018

Код инструментария команды java parquet lib, возможно, послужит вам примером ... содержащие строку:

org.apache.parquet.tools.json.JsonRecordFormatter.JsonGroupFormatter formatter = JsonRecordFormatter.fromSchema(metadata.getFileMetaData().getSchema());

См. здесь для полного источника.

...