hadoop 配置单元表显示NULL值

nvbavucw  于 2022-11-28  发布在  Hadoop
关注(0)|答案(1)|浏览(386)

根据客户需求,我们正在将Hive数据库从AWS EC2示例迁移到AWS EMR示例。我收集了所有创建表语句,如下所示

  1. CREATE TABLE abc( col1 double, col2 double, col3 string, col4 timestamp, col5 string)
  2. ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
  3. OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' LOCATION 's3a://oldprodbucket/hive_folder/hive_database.db/hive_database_ABC'
  4. TBLPROPERTIES ( 'COLUMN_STATS_ACCURATE'='false', 'numFiles'='0', 'numRows'='-1', 'orc.compress'='ZLIB', 'rawDataSize'='-1', 'totalSize'='0', 'transient_lastDdlTime'='1559130496')

我们更改了Location值,其中数据出现在新存储桶中,如下所示。

  1. CREATE TABLE abc( col1 double, col2 double, col3 string, col4 timestamp, col5 string)
  2. ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat'
  3. OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' LOCATION 's3://prodbucket/hive_folder/hive_database.db/hive_database_ABC'
  4. TBLPROPERTIES ( 'COLUMN_STATS_ACCURATE'='false', 'numFiles'='0', 'numRows'='-1', 'orc.compress'='ZLIB', 'rawDataSize'='-1', 'totalSize'='0', 'transient_lastDdlTime'='1559130496')

但在触发表上的SELECT查询时,它会将所有列显示为NULL。

  1. | NULL | NULL | NULL | NULL | NULL

有人能在这方面提供帮助吗?

oalqel3c

oalqel3c1#

Stackoverflow链接HIVE ORC returns NULLs帮助我确定了这个问题。
在Hive数据库管理员的帮助下,我们找到了名为orc.force.positional.evolution的属性。
将其设置为true(如下所示)后,我们可以正确地查看数据。

  1. ALTER table TableName SET TBLPROPERTIES('orc.force.positional.evolution'='true');

相关问题