2017-02-06 30 views
6

İç içe geçmiş alanları olan bir parke dosyasını nasıl oluştururum? Ben şu var:Parke dosyasında yuvalanmış nesne ve dizi nasıl oluşturulur?

public static void main(String []args) throws IOException{ 


     int fileNum = 10; //num of files constructed 
     int fileRecordNum = 50; //record num of each file 
     int rowKey = 0; 
     for(int i = 0; i < fileNum; ++ i) { 

      Map<String, String> metas = new HashMap<>(); 
      metas.put(HConstants.START_KEY, genRowKey("%10d", rowKey + 1)); 
      metas.put(HConstants.END_KEY, genRowKey("%10d", rowKey + fileRecordNum)); 

      ParquetWriter<Group> writer = initWriter("pfile/scanner_test_file" + i, metas); 

      for (int j = 0; j < fileRecordNum; ++j) { 
       rowKey ++; 
       Group group = sfg.newGroup().append("rowkey", genRowKey("%10d", rowKey)) 
         .append("cf:name", "wangxiaoyi" + rowKey) 
         .append("cf:age", String.format("%10d", rowKey)) 
         .append("cf:job", "student") 
         .append("timestamp", System.currentTimeMillis()); 
       writer.write(group); 
      } 

      writer.close(); 
     } 
    } 

Ben iki alanı oluşturmak istiyorum:

  1. hobileri bir listesini ("Swimming", "Kickboks")
  2. alt alanlara içeren bir öğretmen nesnesi içerir Hobiler gibi: { 'teachername': 'Rachel', 'Ö¤retmenevi': 50 }

Cı Birisi Java'da bunun nasıl yapılacağına dair bir örnek sağlar?

+0

Bu nesneyi oluşturmak istediğiniz veri kaynağı nedir? Sadece bir çeşit diziden ve bir tür girdiden, yani java'dan bir nesnenin nasıl oluşturulacağını soruyor musunuz? – mass

+0

Ben de tam olarak ne istediğini anlamakta zorlanıyorum. Belirli bir dereceye kadar, yaratmak istediğiniz neredeyse neredeyse-json benzeri bir veri formatına benziyor mu? – GhostCat

cevap

0

Parke kolonlu (mini depolar) anahtar-değer depolama alanıdır. Bu tür bir depolama alanı iç içe geçmiş verileri tutamaz, ancak bu depolama alanı mantıksal türündeki veriyi ikili formata dönüştürmeyi kabul eder (veriyi içeren başlığa sahip bayt dizisi, bu verilere ne tür bir yakınsamanın uygulanacağını anlamak için).

Dönüştürücüyü nasıl uygulamanız gerektiğinden emin değilim, ancak temel olarak Binary sınıfı veri kabı ile çalışmalı ve String veri türü için bulabileceğiniz bazı dönüştürücü ... örnek dönüştürücü oluşturmalısınız.

İlgili konular