繁体   English   中英

使用Azure Data Factory将数据从Data Lake Store(JSON文件)移动到Azure搜索

[英]Move data from Data Lake Store (JSON file ) to Azure Search using Azure Data Factory

我正在尝试使用Data Factory将json文件从Azure数据湖移动到Azure搜索。 但它显示以下错误,

复制活动在源端遇到用户错误:ErrorCode = UserErrorSourceDataContainsMoreColumnsThanDefined,'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message =处理行号为1的'Csv / Tsv格式文本'源'file.json'时发现错误:找到的列多于预期的列数:52.,Source = Microsoft.DataTransfer.Common,”​​。

我们如何将数据从json文件移动到Azure搜索?

Update1:我已在源中使用JSON格式,但在目标Azure搜索中,createddate列是DateTimeOffset类型列(String-> DateTimeOffset)。 因此出现以下错误,

复制活动在源端遇到用户错误:ErrorCode = UserErrorInvalidDataValue,'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message =列'createddate'包含无效值'1/5/2017 2:03:55 PM' 。 无法将'1/5/2017 2:03:55 PM'转换为类型为'yyyy-MM-dd HH:mm:ss.fffffff'的'DateTime'。,Source = Microsoft.DataTransfer.Common,''Type = System.FormatException,消息=字符串未被识别为有效的DateTime。,源= mscorlib,”。

我试图在Soure端更改Datetime格式,但由于json文件,所以没有任何效果。 当我们尝试从json获取数据时,所有数据均为字符串类型。

UPDATE2:

当我完成该Datetime错误时,接下来将出现以下错误

复制活动在接收器端遇到用户错误:ErrorCode = UserErrorAzuerSearchOperation,'Type = Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message =将数据写入Azure搜索索引'searchindex'.CloudException RequestId:'153be0ce-0bda- 4722-8c9e-951b5325eaa8'。状态代码:'BadRequest'。,源= Microsoft.DataTransfer.ClientLibrary.AzureSearch,''Type = Microsoft.Rest.Azure.CloudException,Message =请求无效。 详细信息:操作:0:文档密钥不能丢失或为空。

请为我提出解决方案,以克服这一难题。

看起来您在输入ADLS数据集中将源格式指定为“ TextFormat”而不是“ JsonFormat”。 有关详细信息和示例,请参阅相应的受支持设置上的JSON格式

如果您使用的是ADF v1,则可以通过复制向导尝试作者,该向导将指导您完成UI中的配置。

我使用了createddate.Value.ToString(“ yyyy-MM-dd HH:mm:ss.fffffff”)而不是createddate.ToString(“ yyyy-MM-dd HH:mm:ss.fffffff”),它可以正常工作,因为createddate是可为空的列(Nullable)。

createddate.Value.ToString(“ yyyy-MM-dd HH:mm:ss.fffffff”)

错误“文档密钥不能丢失或为空”表示您要插入到Azure搜索的行中Azure搜索索引键为空。 您能否再次检查“密钥”列是否在源端提供,并且始终不为null?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM