0

Cloudera Manager Navigator REST API で作業していますが、結果の抽出は正常に機能していますが、ネストされた値を取得できません。

抽出するデータの種類は以下の通りです。

{
    "parentPath": "String",
    "customProperties": "Map[string,string]",
    "sourceType": "String",
    "entityType": "String"
}

そして、データは次のようになるはずです

{
    "parentPath": "abcd",
    "customProperties": {
                            "nameservice" : "xyz"
                        },
    "sourceType": "rcs",
    "entityType": "ufo"
}

しかし、次のようにキー値の結果を取得しています。

parentPath :abcd
customProperties : null
sourceType : rcs
entityType : ufo

上記の応答データでは、「customProperties」には null 値が含まれていますが、マップ オブジェクトを返す必要があります["nameservice" : "xyz"]。これは、次のコード スニペットの問題です。

MetadataResultSet metadataResultSet = extractor.extractMetadata(null, null,"sourceType:HDFS", "identity:*");
Iterator<Map<String, Object>> entitiesIt = metadataResultSet.getEntities().iterator(); 
     while(entitiesIt.hasNext()){
        Map<String, Object> result = entitiesIt.next();
        for(String data : result.keySet()){
                        System.out.println(" key:"+data+" value:"+result.get(data));
                        }
        }

データ型が複雑なネストされた値を取得する方法を教えてください。

4

1 に答える 1

0

ナビゲーターUIでデータがどのように見えるかを確認しましたか? 最初にそれを一度確認し、ブラウザーで cloudera /entities/entity-id REST API を試して、json 応答がどのように来るかを確認することもできます

于 2016-07-09T15:37:12.043 に答える