GCP dataproc 上的外部 Hive table 未从 GCP 存储桶中读取数据
External Hive table on GCP dataproc not readng data from GCP bucket
我在 GCP 存储桶中有以下格式的数据:
gs://bucket/my_table/data_date=2021-03-26/000
gs://bucket/my_table/data_date=2021-03-26/001
gs://bucket/my_table/data_date=2021-03-27/000
gs://bucket/my_table/data_date=2021-03-27/001
我正在使用以下数据创建外部 table:
CREATE EXTERNAL TABLE `my_db.my_table`(
`col1` string,
`col2` string,
PARTITIONED BY (
`data_date` string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'field.delim'='\t',
'serialization.format'='\t')
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'gs://bucket/my_table/'
创建时没有错误 table:
hive > CREATE EXTENAL TABLE ...
Time Taken: 0.012 seconds
OK
但是,我看不到任何数据。 None 以下命令 return 任何命令,即使存储桶中有数据文件。
hive> show partitions my_db.my_table;
Ok
Time taken: 0.191 seconds
hive> select * from my_db.my_table;
Ok
Time taken: 0.191 seconds
我也没有看到任何错误。我已经验证并且我确实拥有存储桶的读取权限。
您需要修复 table 以检索外部 table 中的所有现有分区。修复命令恢复所有分区并更新 Hive 元存储。
MSCK REPAIR TABLE TABLE_NAME
您可以阅读有关修复命令的更多信息here。
我在 GCP 存储桶中有以下格式的数据:
gs://bucket/my_table/data_date=2021-03-26/000
gs://bucket/my_table/data_date=2021-03-26/001
gs://bucket/my_table/data_date=2021-03-27/000
gs://bucket/my_table/data_date=2021-03-27/001
我正在使用以下数据创建外部 table:
CREATE EXTERNAL TABLE `my_db.my_table`(
`col1` string,
`col2` string,
PARTITIONED BY (
`data_date` string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'field.delim'='\t',
'serialization.format'='\t')
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
'gs://bucket/my_table/'
创建时没有错误 table:
hive > CREATE EXTENAL TABLE ...
Time Taken: 0.012 seconds
OK
但是,我看不到任何数据。 None 以下命令 return 任何命令,即使存储桶中有数据文件。
hive> show partitions my_db.my_table;
Ok
Time taken: 0.191 seconds
hive> select * from my_db.my_table;
Ok
Time taken: 0.191 seconds
我也没有看到任何错误。我已经验证并且我确实拥有存储桶的读取权限。
您需要修复 table 以检索外部 table 中的所有现有分区。修复命令恢复所有分区并更新 Hive 元存储。
MSCK REPAIR TABLE TABLE_NAME
您可以阅读有关修复命令的更多信息here。