代码之家  ›  专栏  ›  技术社区  ›  Paul Mihai Stolniceanu

是否可以使用impala查询包含日期类型列的配置单元表?

  •  2
  • Paul Mihai Stolniceanu  · 技术社区  · 8 年前

    每次我试图在IMPALA中从配置单元中创建的表中选择日期类型字段时,我都会得到AnalysisException:不支持的类型“DATE”。

    有什么解决办法吗?

    更新 这是一个从配置单元创建表架构和impala查询的示例

    架构:

    创建表格 myschema.mytable ( day_dt 日期 event 字符串)

    分区人( day_id 整数)

    存储为INPUTFORMAT '组织。阿帕奇。hadoop。映射。文本输入格式'

    OUTPUTFORMAT输出格式 '组织。阿帕奇。hadoop。蜂箱ql.io。HiveIgnoreKeyTextOutputFormat'

    Impala查询 选择b.day\u dt 来自myschema。mytable b;

    2 回复  |  直到 8 年前
        1
  •  2
  •   Bala    8 年前

    黑斑羚没有 DATE 数据类型,而Hive具有。你会得到 AnalysisException: Unsupported type 'DATE' 当你从黑斑羚进入时。快速修复方法是创建 string 该列 date 在Hive中获取价值,并从Impala以任何方式访问它。

        2
  •  0
  •   RD1    8 年前

    如果要存储为字符串,则可以创建一个新的外部配置单元表,该表指向与现有表相同的HDFS位置,但该模式的数据类型为day\u dt,而不是DATE。

    这是一个真正的解决方法,它可能只适用于某些用例,并且每当添加新分区时,您至少需要在外部配置单元表上执行“MSCK修复”。