2017-10-16 176 views
0

我正在嘗試使用Data Factory將Azure數據湖中的json文件移至Azure搜索。 但它示出了下面的錯誤,使用Azure數據工廠將數據從Data Lake Store(JSON文件)移動到Azure搜索

複製活性在源側遇到用戶錯誤:錯誤碼= UserErrorSourceDataContainsMoreColumnsThanDefined,「類型= Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,消息=發現錯誤時處理」 CSV/Tsv格式文本'源'file.json'與行號1:發現更多的列比預期的列數:52.,Source = Microsoft.DataTransfer.Common,'。

我們如何將數據從json文件移動到Azure搜索?

UPDATE1: 我已經使用JSON格式在源,但在目的地天青搜索的createddate列是一個的DateTimeOffset型柱(字符串 - >的DateTimeOffset)。 因此得到了下面的錯誤,

拷貝活動遇到在源側的用戶錯誤:錯誤碼= UserErrorInvalidDataValue,'類型= Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,消息=列‘createddate’包含一個無效值'1/5/2017 2:03:55 PM'。無法將'2017/1/15 2:03:55'轉換爲格式爲'yyyy-MM-dd HH:mm:ss.fffffff'的輸入'DateTime',來源= Microsoft.DataTransfer.Common,''Type = System.FormatException,Message = String未被識別爲有效的DateTime。,Source = mscorlib,'。

我試圖改變Soure端的日期時間格式,但沒有任何工作,因爲json文件。當我們嘗試從json獲取數據時,所有數據都將是字符串類型。

UPDATE2:

當我完成該日期時間錯誤,那麼以下錯誤即將

拷貝活動遇到在水槽側的用戶錯誤:錯誤碼= UserErrorAzuerSearchOperation,'類型= Microsoft.DataTransfer .Common.Shared.HybridDeliveryException,Message =將數據寫入Azure搜索索引'searchindex'時發生錯誤.CloudException RequestId:'153be0ce-0bda-4722-8c9e-951b5325eaa8'。狀態碼:'BadRequest'。,Source = Microsoft.DataTransfer .ClientLibrary.AzureSearch, '' 類型= Microsoft.Rest.Azure.CloudException,消息=該請求無效。詳細信息:操作:0:文檔密鑰不能丟失或爲空。

請給我一個解決方案來克服這一個..在此先感謝!

+0

您已經提出了確切的問題。請不要發佈兩次。 –

+0

我刪除了前一個 – Arron

回答

1

看起來像您在輸入ADLS數據集中指定源格式爲「TextFormat」而不是「JsonFormat」。有關詳細信息和示例的相應支持設置,請參閱JSON format

如果您使用的是ADF v1,您可以通過copy wizard嘗試作者,它將指導您完成UI中的配置。

+0

我也使用了** JSON格式**,這也顯示了DateTime列的錯誤。 複製活動在源端遇到用戶錯誤:ErrorCode = UserErrorInvalidDataValue,'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message = Column'createddate'contains an invalid value'2017/1/5 2:03:55下午'。無法將'2017/1/15 2:03:55'轉換爲格式爲'yyyy-MM-dd HH:mm:ss.fffffff'的輸入'DateTime',來源= Microsoft.DataTransfer.Common,''Type = System.FormatException,Message = String未被識別爲有效的DateTime。,Source = mscorlib,'。 – Arron

0

我已經使用createddate.Value.ToString(「yyyy-MM-dd HH:mm:ss.fffffff」)而不是createddate.ToString(「yyyy-MM-dd HH:mm:ss.fffffff」)和它工作正常,因爲createddate是一個可爲空列(Nullable)。

created date。Value.ToString(「yyyy-MM-dd HH:mm:ss.fffffff」)

0

錯誤「文檔鍵不能丟失或爲空」表示Azure搜索索引鍵在所需的行中爲空插入Azure搜索。你可以仔細檢查Key列是否在源端提供並且始終不爲null?

相關問題