【问题标题】:Hive date column shows null while querying the data查询数据时 Hive 日期列显示为空
【发布时间】:2022-01-20 03:13:55
【问题描述】:

在 hive 表中加载 spark 数据帧的数据。 在加载 df.show(10) 之前,以正确的格式和数据显示日期列,但是在查询配置单元表时,日期列显示为空。

//Spark Code
df.show(10)
+----------+
|    bus_dt|
+----------+
|2021-12-01|
+----------+

//Hive shell
select distinct bus_dt from stg.dateTable;
NULL

//Table
create table stg.dateTable (
`bus_dt` date comment 'from deserializer')
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '/u0003'
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
TBLPROPERTIES (
'serialization.null.format'=''
);

【问题讨论】:

    标签: apache-spark hadoop hive apache-spark-sql hql


    【解决方案1】:

    您能否尝试将 DDL 更改为使用 serde 而不是 TxtInputFormat。

    ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe'
    WITH SERDEPROPERTIES ('field.delim'='/u0003')
    TBLPROPERTIES('serialization.null.format'='');
    

    问题似乎在于 hive 端的存储和检索,而不是 spark 处理。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多