0
我有一个外部Hive表指向通过S3上的Spark作业写入的Parquet文件,它具有日期,时间戳字段,当我通过配置单元查询时,我得到正确的日期Timestamp字段在EMR上显示1970-01-01
CREATE EXTERNAL TABLE events(
event_date date,
event_timestamp timestamp,
event_name string,
event_category string
PARTITIONED BY (
dateid int,
STORED AS PARQUET
LOCATION 's3a://somebucket/events'
hive> SELECT event_timestamp, event_date from events limit 10;
2017-01-02 13:40:23 2017-01-02
2017-01-02 13:40:23.013 2017-01-02
2017-01-02 13:40:23.419 2017-01-02
2017-01-02 18:51:57.637 2017-01-02
2017-01-02 18:52:03.512 2017-01-02
2017-01-02 18:52:03.769 2017-01-02
2017-01-02 18:52:30.945 2017-01-02
2017-01-02 18:52:32.757 2017-01-02
2017-01-02 18:52:37.083 2017-01-02
2017-01-02 18:52:38.099 2017-01-02
然而,当我通过急运行在EMR集群版本(EMR-5.6.0),我看到所有日期为1970-01-01
presto-cli --catalog hive --schema default
presto:default> SELECT event_timestamp, event_date from events limit 10;
1970-01-01 00:00:17.197 | 1970-01-01
1970-01-01 00:00:17.197 | 1970-01-01
1970-01-01 00:00:17.197 | 1970-01-01
1970-01-01 00:00:17.197 | 1970-01-01
1970-01-01 00:00:17.197 | 1970-01-01
1970-01-01 00:00:17.197 | 1970-01-01
1970-01-01 00:00:17.197 | 1970-01-01
1970-01-01 00:00:17.197 | 1970-01-01
1970-01-01 00:00:17.197 | 1970-01-01
1970-01-01 00:00:17.197 | 1970-01-01
运行(0.170版) Hive中的时间戳字段是否存在与Parquet通过Presto查询的问题?
您可以在Hive连接器配置中尝试'hive.parquet.use-column-names = true',以使Presto按名称匹配列。 –