突然间我无法从 spark 读取 hive 外部 s3 表,我注意到在几个分区下创建了子文件夹。
我希望可以配置任何参数或设置,这样 Hadoop 就不会创建这些子文件夹。
当我从 s3 手动删除子文件夹时,我可以读取表。但需要找到一种方法,以便将来不会随机创建这些子文件夹。
CREATE EXTERNAL TABLE `mydb.mytable`(
`id` string COMMENT 'from deserializer',
`attribute_value` string COMMENT 'from deserializer',
`attribute_date` string COMMENT 'from deserializer',
`source_id` string COMMENT 'from deserializer')
PARTITIONED BY (`partition_source_id` int)
ROW FORMAT SERDE 'com.bizo.hive.serde.csv.CSVSerde'
STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION 's3://path/my_data'
TBLPROPERTIES ('transient_lastDdlTime'='1567170767')
当我运行select *
查询时,我得到:
错误:java.io.IOException:不是文件:s3://my_path/partition_source_id=11/1 1 条语句失败。