如何在镶木地板文件中创建嵌套对象和数组?

Rol*_*ndo 7 java parquet

如何使用嵌套字段创建镶木地板文件?我有以下内容:

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();
        }
    }
Run Code Online (Sandbox Code Playgroud)

我想创建两个字段:

  1. 爱好包含一系列爱好("游泳","跆拳道")
  2. 包含以下子字段的教师对象:{'teachername':'Rachel','teacherage':50}

有人可以提供一个如何在Java中执行此操作的示例吗?

小智 -7

Parquet 是列式(迷你存储)键值存储...即这种存储不能保留嵌套数据,但这种存储接受将逻辑类型的数据转换为二进制格式(带有包含数据的标头的字节数组,以了解哪种类型的数据)应对此数据进行转换)。

我不确定您应该如何实现转换器,但基本上您应该使用Binary类作为数据容器并创建一些转换器...您可以找到String数据类型的示例转换器。