【问题标题】:what is the alternative for double datatype from spark sql(Databricks) to Sql Server Data warehouse从 spark sql(Databricks) 到 Sql Server 数据仓库的双重数据类型的替代方案是什么
【发布时间】: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


【解决方案1】:

使用 53 位精度和 8 字节长度的 float(53)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-21
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多