Sql 错误代码:DelimitedTextMoreColumnShandefined Azure数据工厂
我正在尝试将数据从csv文件复制到Azure data Factory中的sql表 这是CSV文件的“我的类型”属性Sql 错误代码:DelimitedTextMoreColumnShandefined Azure数据工厂,sql,azure,csv,delimiter,azure-data-factory-2,Sql,Azure,Csv,Delimiter,Azure Data Factory 2,我正在尝试将数据从csv文件复制到Azure data Factory中的sql表 这是CSV文件的“我的类型”属性 "typeProperties": { "location": { "type": "AzureBlobStorageLocation", "fileName": "2
"typeProperties": {
"location": {
"type": "AzureBlobStorageLocation",
"fileName": "2020-09-16-stations.csv",
"container": "container"
},
"columnDelimiter": ",",
"escapeChar": "\\",
"firstRowAsHeader": true,
"quoteChar": "\""
我收到以下错误:
ErrorCode=DelimitedTextMoreColumnsThanDefined,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=处理行号为2的“Csv/Tsv格式文本”source“2020-09-16-stations.Csv”时发现错误:找到的列数超过预期列数11,source=Microsoft.DataTransfer.Common'
这是第二排
0e18d0d3-ed38-4e7f,柏林12207,48.1807,11.46091970-01-01 01:00+01,“{”开放时间“:[{”适用天数“:96”,“期间“:[{”开始时间“:”08:00”,“结束时间“:”20:00”},{”适用天数“:31”,“期间“:[{”开始时间“:”06:00”,“结束时间“:”20:00”}
我认为最后一列,JSON查询在本例中造成了麻烦。当我查看数据时,它看起来很好:
我原以为,
“quoteChar:”\“
会防止最后一列出现问题。我不知道为什么在运行调试时会出现此错误,这是因为此值“{”“openingTimes”“:[{”“applicative\u days”“:96”“periods”“:[{”“startp”“:”“08:00”“endp”“:”“20:00”“}],{”“applicative\u days”“:31”“periods”“:[{”startp“”:“06:00”,“endp”“:“20:00”“}]}]}“
包含多个逗号,您的列分隔符为“”,这导致该值被拆分为多个列。因此,您需要更改列分隔符。尝试设置转义字符=“(双引号)。这应该把每一对双引号当作一个实际的单引号,不要把它们当作字符串中的“引号char”,这样你就会得到一个看起来像这样的字符串(系统知道它是一个字符串,而不是必须分割的字符串):
尝试设置转义字符=“(双引号)令人惊讶地起到了作用。我现在不知道转义字符与此有什么关系。如果您愿意,现在可以用您的注释回答问题。谢谢您的回答。我知道,但整个值都包含在2
”
中,我定义了“quoteChar”:“\”“这会将最后一列作为一列,不会再次将它们分开。
{"openingTimes":[{"applicable_days":96,"periods":[{"startp":"08:00","endp":"20:00"}]},
{"applicable_days":31,"periods":[{"startp":"06:00","endp":"20:00"}]}]}