sql - 为 azure 突触分析创建外部表的问题
问题描述
我在 SMSS 中创建外部表时遇到困难。我将数据集存储在 BLOB 存储中,并尝试将其从那里加载到外部表中。我不断收到此错误:
HdfsBridge::recordReaderFillBuffer - 填充记录读取器缓冲区时遇到意外错误:HadoopSqlException:将数据类型 NVARCHAR 转换为 INT 时出错
我使用了以下查询
CREATE EXTERNAL TABLE [ext].[klant](
[number] [int] NOT NULL,
[customer_id] [int] NOT NULL,
[status] [nvarchar](50) NOT NULL,
[shipping.postcode] [nvarchar](50) NOT NULL,
[date_created] [datetime2](0) NOT NULL,
[date_completed] [datetime2](0) NOT NULL,
[shipping.address_1] [nvarchar](50) NOT NULL,
[shipping.city] [nvarchar](50) NOT NULL
)
WITH (
LOCATION='/customer/',
DATA_SOURCE = storage,
FILE_FORMAT = fileformat,
REJECT_TYPE = VALUE,
REJECT_VALUE = 0
);
我还尝试通过将数据从源复制到表来解决 ADF 中的这个问题,但没有成功。我希望有人可以帮助我解决这个问题。提前致谢
解决方案
感谢您验证 CREATE EXTERNAL DATA SOURCE 语句。您的具体问题是 CREATE EXTERNAL TABLE 语句中定义的内容与数据文件中实际存在的内容之间的列定义之一。
Error converting data type NVARCHAR to INT
源数据文件中的数据,无论是number
列还是customer_id
列都是 nvarchar 并试图存储为 int。您的数据文件中有多余的字符吗?该错误表示数据类型或列不匹配。
推荐阅读
- rest - LinkedIn v2 API:如何使用 ugcPosts API 上传图片?
- php - 在创建期间加载 Laravel Eloquent 关系
- java - 读取以下字符串的正则表达式,包括空格和点: android.os.Process.killProcess(android.os.Process.myPid());
- reactjs - 使用 redux 反应原生 post 数据
- html - 为什么社交分享框里有一条线?
- vert.x - vertx getFormAttribute() 返回 null
- excel - 在 listbox2 中选择的工作表并将其导出到新工作簿
- cordova - 如何通过ionic中的socialsharing插件共享一组图像文件链接或多个图像?
- django - Django Rest Framework:使用 DynamicFieldsModelSerializer 排除序列化器字段
- java - Java Instant 的错误?`DateTimeException:年份值无效`