【发布时间】:2020-10-30 19:01:30
【问题描述】:
我正在尝试使用本地 ssms 从 azure data Lake gen2 复制到 azure synapse 仓库中的表。 COPY INTO 语句既不会引发任何错误,也不会转储数据。我正在使用 sep=',', encoding='utf-8' 将 pandas df 从 centos 服务器复制到 azure data Lake gen2。这是我正在使用的 COPY 语句。
COPY INTO dbo.SALES_CUTOMER_D
FROM 'https://acoount_name/test-file-system/SALES_CUSTOMER_D_0.csv'
WITH (
FILE_TYPE = 'csv',
CREDENTIAL=(IDENTITY= 'Storage Account Key', SECRET=''),
FIELDQUOTE = '"',
FIELDTERMINATOR=',',
ROWTERMINATOR='\r\n',
ENCODING = 'UTF8',
FIRSTROW = 2
)
【问题讨论】:
-
尝试 ERRORFILE 选项以查看它是否将任何错误打印到 ERRORFILE。删除
FIELDQUOTE、FIELDTERMINATOR、ROWTERMINATOR,您使用的是默认值。它可能会产生影响。除此之外,如果您希望有人为您提供更多帮助,您必须将 csv 文件的内容和 DDL 放入SALES_CUTOMER_D。指定列列表 (COPY INTO dbo.SALES_CUTOMER_D (col1, col2, ...) FROM ...) 也是一个好主意。 -
@Kashyap 是的,我尝试将其用于名为 employee.csv 的示例 csv,其中 10 行模式 id 为 int,名称为 varchar 100,即使是同样的事情也在发生
-
当我再次尝试将错误写入错误文件时,它会抛出访问被拒绝错误代码5的错误
-
对于错误文件,提供完整的 URL,对于错误文件凭证,使用 sas 令牌而不是帐户密钥。还要在这个输入的 CSV 文件上运行 unix2dos 并尝试。
标签: python pandas azure-data-lake-gen2 azure-synapse