尝试使用 Azure 数据工厂将数据湖 (gen2) 中的 csv 文件加载到 Azure Synapse。源文件将“(双引号)作为转义字符。这超出了直接将 Polybase 连接到 Data Lake 的数据限制。我按照以下文档设置了暂存副本
"enableStaging": true,
"stagingSettings": {
"linkedServiceName": {
"referenceName": "LS_StagedCopy",
"type": "LinkedServiceReference"
},
"path": "myContainer/myPath",
"enableCompression": false
}
调试管道后,我仍然得到
{Class=16,Number=107090,State=1,Message=HdfsBridge::recordReaderFillBuffer - Unexpected error encountered filling record reader buffer: HadoopExecutionException: Too many columns in the line.,},],
我确实看到 ADF 在我在暂存副本中提供的路径中创建了一个临时文件夹,但它看起来没有执行加载数据所需的转换。我错过了什么吗?
链接到文档 Copy and transform data in Azure SQL Data Warehouse by using Azure Data Factory
最佳答案
问题很可能出在您的数据上。检查你的分隔符。希望它不是“,”或类似这样明显的东西。当一列的文本包含许多“”时,这是一个常见问题,ADF 会将其解释为新列。 使用较小的干净 csv 对其进行测试,然后从那里开始。
关于azure - 使用 ADF 复制 Azure SQL DW 中的数据(根据文档,使用 Polybase 进行分阶段复制不起作用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58998139/