2016-06-23 6 views
0

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

データの種類は次のとおりです。

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

とデータが

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

ようにする必要があります。しかし、次のように、私は、キーと値の結果を取得しています。上記応答データ、「CUSTOMPROPERTIES」で

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

は、地図オブジェクトが["nameservice" : "xyz"]が含ま返すべきNULL値で来ています。これは、次のコードスニペットの問題です。

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)); 
         } 
     } 

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

答えて

0

ナビゲータでデータがどのように表示されるか確認しました。あなたは一度それを確認することができますし、ブラウザでcloudera/entities/entity-id rest APIを試して、jsonレスポンスの到着を確認してください。

+0

ナビゲータUIにはすべての詳細データと "https:// abcd:7777/api/v9/actions/running "が[]を返しています。しかし、(/ entities/entity-id)に対するJSONの応答には適切なデータがあります。私はまた、単純なデータの抽出中に自分のJavaコードに問題はありません。複雑なタイプ(上記の "customProperties")だけがnull値を返しています。 –

関連する問題