从Spark sql(Databricks)到SQL Server数据仓库的双数据类型的替代方法是什么

时间:2019-04-22 13:13:25

标签: sql-server-2016 azure-data-lake azure-databricks azure-sql-data-warehouse

我必须将数据从Azure Datalake加载到数据仓库中。我已经创建了用于创建外部表的设置。有一列是double数据类型,我在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

1 个答案:

答案 0 :(得分:0)

使用精度为53位,长度为8个字节的float(53)。