【发布时间】:2019-09-11 16:20:26
【问题描述】:
我必须将数据从 azure datalake 加载到数据仓库。我已经创建了用于创建外部表的设置。有一列是双数据类型,我在 sql server 数据仓库中使用十进制类型来创建外部表并且文件格式是镶木地板。但是使用 csv 它可以正常工作。 我收到以下错误。
HdfsBridge::recordReaderFillBuffer - 遇到意外错误 填充记录读取器缓冲区:ClassCastException:类 java.lang.Double 不能转换为 parquet.io.api.Binary 类 (java.lang.Double 在加载器“bootstrap”的模块 java.base 中; parquet.io.api.Binary 位于加载程序“app”的未命名模块中。
有人可以帮我解决这个问题吗? 提前致谢。
CREATE EXTERNAL TABLE [dbo].[EXT_TEST1]
( A VARCHAR(10),B decimal(36,19)))
(DATA_SOURCE = [Azure_Datalake],LOCATION = N'/A/B/PARQUET/*.parquet/',FILE_FORMAT =parquetfileformat,REJECT_TYPE = VALUE,REJECT_VALUE = 1)
Column datatype in databricks:
A string,B double
Data: A | B
'a' 100.0050
【问题讨论】:
-
你试过浮动吗?我认为它将被视为浮点数,因此小数将不起作用。
-
@simon- 感谢您的回复。我已经尝试过 float 它正在工作,但我想要在 DWH 中使用双类型的另一种方法
标签: sql-server-2016 azure-data-lake azure-databricks azure-sql-data-warehouse