2017-10-16 78 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?

相关问题