【问题标题】:Unable to read hadoop/hive external s3 table from spark无法从 spark 读取 hadoop/hive 外部 s3 表
【发布时间】:2020-01-06 15:58:42
【问题描述】:

突然间我无法从 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 条语句失败。

【问题讨论】:

    标签: sql apache-spark hadoop awss3transfermanager


    【解决方案1】:

    我认为此 DDL 不会创建子文件夹。 如果有一些工作将数据加载到 's3://path/my_data' 并在 mydb.mytable 上执行 DDL 添加分区,我认为你应该看看这个工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      • 1970-01-01
      • 1970-01-01
      • 2019-07-09
      • 1970-01-01
      相关资源
      最近更新 更多