2016-09-27 67 views
1

我要瘋了! 我正在使用Azure機器學習和R腳本。我將它部署爲Web服務。我使用基於HttpClient的示例代碼。沒有ColumnNames的「R Script」的結果

  using (var client = new HttpClient()) 
     { 
      var scoreRequest = new 
      { 
       Inputs = new Dictionary<string, StringTable>() { 
        { 
         "input1", 
         new StringTable() 
         { 
          ColumnNames = new string[] { 
            "experts_estimates", 
            "experts_share_of_unique_information", 
            "avg_correlation", 
            "point_a", 
            "point_b", 
            "is_export_mode" 
          }, 
          Values = new string[,] { 
           { 
            expertsEstimatesStr, 
            expertsShareOfUniqueInformationStr, 
            avgCorrelationStr, 
            pointAStr, 
            pointBStr, 
            isExportModeStr 
           }, 
          } 
         } 
        }, 
       }, 
       GlobalParameters = new Dictionary<string, string>() 
       { 
       } 
      }; 

      client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", apiKey); 
      client.BaseAddress = new Uri(apiUrl); 

      // WARNING: The 'await' statement below can result in a deadlock 
      // if you are calling this code from the UI thread of an ASP.Net application. 
      // One way to address this would be to call ConfigureAwait(false) 
      // so that the execution does not attempt to resume on the original context. 
      // For instance, replace code such as: 
      //  result = await DoSomeTask() 
      // with the following: 
      //  result = await DoSomeTask().ConfigureAwait(false) 

      HttpResponseMessage response = await client.PostAsJsonAsync("", scoreRequest); 

      if (response.IsSuccessStatusCode) 
      { 
       string result = await response.Content.ReadAsStringAsync(); 
       return result; 
      } 
      else 
      { 
       // Print the headers - they include the requert ID and the timestamp, 
       // which are useful for debugging the failure 
       var headers = response.Headers.ToString(); 
       string responseContent = await response.Content.ReadAsStringAsync(); 
       throw new Exception(responseContent, new Exception(headers)); 
      } 
     } 

,當我運行從Visual Studio代碼我得到: enter image description here 但是當我從Azure的應用服務運行代碼我得到: enter image description here

任何想法?

回答

0

一種解決方案是在模型中添加「編輯元數據」模塊並重命名輸出列。這比使用代碼來命名列更容易。