Date elasticsearch中的配置单元日期显示为空
我有一个配置单元表详细信息,带有以下模式Date elasticsearch中的配置单元日期显示为空,date,elasticsearch,hive,hue,Date,elasticsearch,Hive,Hue,我有一个配置单元表详细信息,带有以下模式 name STRING, address STRING, dob DATE 我的dob以yyyy-mm-dd格式存储。如1988-01-27 我正在尝试加载此弹性搜索表。所以,我按照下面的指示,在色调 CREATE EXTERNAL TABLE sampletable (name STRING, address STRING, dob DATE) ROW FORMAT SERDE 'org.elasticsearch.hadoop.hive.EsSer
name STRING,
address STRING,
dob DATE
我的dob以yyyy-mm-dd格式存储。如1988-01-27
我正在尝试加载此弹性搜索表。所以,我按照下面的指示,在色调
CREATE EXTERNAL TABLE sampletable (name STRING, address STRING, dob DATE)
ROW FORMAT SERDE 'org.elasticsearch.hadoop.hive.EsSerDe'
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler' TBLPROPERTIES('es.resource' = 'test4/test4','es.nodes' = 'x.x.x.x:9200');
INSERT OVERWRITE TABLE sampletable SELECT * FROM details;
select * from sample table;
但DOB字段对所有列显示NULL。然而,我可以验证我的原始配置单元表在日期字段中是否有数据
经过一些研究,我发现Elasticsearch希望数据字段为yyyy-mm-ddThh:mm:zz,因为我的数据不匹配,所以它会抛出错误。它还提到,我可以将格式更改为“strict_date”格式,这样就可以很好地使用我的蜂巢日期格式。但我不确定我在配置单元查询中执行的位置,我需要满足这个条件
有人能帮我吗?
date
到配置单元的类型映射有一些问题。
您可以使用配置单元string
类型映射esdate
type,但必须为参数设置配置单元表:es.mapping.date.rich
,将其值设置为false。与此类似,在create table语句中,es.mapping.date.rich'='false',它是:
CREATE EXTERNAL TABLE temp.data_index_es(
id bigint,
userId int,
createTime string
)
STORED BY 'org.elasticsearch.hadoop.hive.EsStorageHandler'
TBLPROPERTIES(
'es.nodes' = 'xxxx:9200',
'es.index.auto.create' = 'false',
'es.resource' = 'abc/{_type}',
'es.mapping.date.rich' = 'false',
'es.read.metadata' = 'true',
'es.mapping.id' = 'id',
'es.mapping.names' = 'id:id, userId:userId, createTime:createTime');
参考链接: