如何使用外部表将数据库中的表映射到Azure数据仓库?

问题描述 投票:0回答:1

我尝试从Azure Databricks中的表在Azure数据仓库中创建外部表。我无法转换几个列类型,如日期和小数。

我在databricks中的表结构示例:

enter image description here

azure数据仓库中的表模式:

CREATE EXTERNAL TABLE table.NAME (
    aBooleanFlag BIT NULL
    ,bIntID int NULL
    ,cStringColumn VARCHAR(50)
    ,dDateColumns   DATETIME    null
    ,eMoneyAmount   DECIMAL(13,3)   null
)
WITH(DATA_SOURCE=[DS_DTS_LAKE], LOCATION=N'//Folder/Table/', FILE_FORMAT=[ParquetFileFormat], REJECT_TYPE=VALUE, REJECT_VALUE=0) ;
GO

我为此尝试了什么:

  1. 我按字母顺序排列了列,因为我注意到有时外部表没有正确映射列
  2. 我将所有列转换为字符串并成功创建表
  3. 我试着转换到不同的列数据类型,如DoubleType()或浮动,没有任何运气。相反,我收到以下错误消息:

错误消息:消息106000,级别16,状态1,行38 HdfsBridge :: recordReaderFillBuffer - 填充记录读取器缓冲区时遇到意外错误:ClassCastException:

  1. 我正在考虑再次创建一个外部表,所有列都是字符串,然后通过适当的转换在其上创建一个视图。

请告知如何正确映射数据类型或视图选项是否可行。

azure type-conversion databricks
1个回答
0
投票

我偶然发现了一个解决方案。我已将转换更改为以下内容:

from DecimalType(13,3) to DecimalType(24,10)
from DateType to TimestampType 
© www.soinside.com 2019 - 2024. All rights reserved.