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

时间:2019-03-21 11:39:00

标签: azure type-conversion databricks

我尝试从Azure Databricks中的表在Azure DataWarehouse中创建外部表。我无法转换一些列类型,例如日期和小数位数。

我在数据砖中的表结构示例:

enter image description here

天蓝色数据仓库中的表架构:

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()或float,但没有任何运气。相反,我在下面收到错误消息:

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

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

请告知如何适当设置地图数据类型或可行的查看选项。

1 个答案:

答案 0 :(得分:0)

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

from DecimalType(13,3) to DecimalType(24,10)
from DateType to TimestampType