当前位置: 首页 > 知识库问答 >
问题:

如何在配置单元表中插入时间戳?

高宏峻
2023-03-14
hive> CREATE TABLE foo (bar timestamp) STORED AS ORC;
OK
Time taken: 0.041 seconds

hive> INSERT INTO TABLE foo VALUES ('2014-01-17 00:17:13');
NoViableAltException(26@[])
        at org.apache.hadoop.hive.ql.parse.HiveParser_SelectClauseParser.selectClause(HiveParser_SelectClauseParser.java:742)
        at org.apache.hadoop.hive.ql.parse.HiveParser.selectClause(HiveParser.java:40184)
        at org.apache.hadoop.hive.ql.parse.HiveParser.singleSelectStatement(HiveParser.java:38048)
        at org.apache.hadoop.hive.ql.parse.HiveParser.selectStatement(HiveParser.java:37754)
        at org.apache.hadoop.hive.ql.parse.HiveParser.regularBody(HiveParser.java:37654)
        at org.apache.hadoop.hive.ql.parse.HiveParser.queryStatementExpressionBody(HiveParser.java:36898)
        at org.apache.hadoop.hive.ql.parse.HiveParser.queryStatementExpression(HiveParser.java:36774)
        at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1338)
        at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1036)
        at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:199)
        at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166)
        at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:408)
        at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:322)
        at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:976)
        at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1041)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:912)
        at org.apache.hadoop.hive.ql.Driver.run(Driver.java:902)
        at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268)
        at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220)
        at org.apache.hadoop.hive.cli.CliDriver.processLine(CliDriver.java:423)
        at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:793)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:686)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:625)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
FAILED: ParseException line 1:22 cannot recognize input near 'values' '(' ''2014-01-17 00:17:13'' in select clause

共有1个答案

伊羽
2023-03-14

根据配置单元语言手册“插入...values在配置单元0.14中开始可用”。

因此,您只剩下两个选择:

  1. 从现有表中插入时间戳值或调用函数获取该值(例如from_unixtimestamp()),请参阅以下答案)
  2. 从文件中加载数据。
 类似资料:
  • 嗨,我是Hive的新手,我想把当前的时间戳和一行数据一起插入到我的表中。 我得到的错误是: 如果有人能帮忙,那就太好了,非常感谢frostie

  • 我正试图将数据从Oracle加载到Hive作为parquet。每次我将带有日期/时间戳列的表加载到hive时,它都会自动将这些列转换为BIGINT。可以使用sqoop将时间戳/日期格式加载到hive中,并作为一个parquet文件吗? 已经尝试过首先在hive中创建表,然后使用impala将数据加载到parquet文件中。< br >仍然失败,出现错误 "文件XX的第XX列有不兼容的拼花模式:时间

  • 我需要将记录流插入到配置单元分区表中。表结构类似于 我想了解一下Hive是如何处理内部表中的插入的。 是否将所有记录插入到yyyy_mm_dd=2018_08_31目录中的单个文件中?或者配置单元在一个分区内拆分为多个文件,如果是,什么时候拆? 如果每天有100万条记录,并且查询模式介于日期范围之间,那么下面哪一条性能好? 内部表中没有分区 按日期分区,每个日期只有一个文件 按日期分区,每个日期有

  • 我试图做一些性能优化的数据存储。这个想法是使用蜂巢的巴克特/集群来桶可用的设备(基于列id)。我目前的方法是从外部表插入数据到表中的拼花文件。结果它应用了巴克特。 我想通过直接从PySpark 2.1将数据摄取到该表中来摆脱中间的这一步。使用SparkSQL执行相同的语句会导致不同的结果。添加cluster by子句 仍然会导致不同的输出文件。 这就引出了两个问题:1)从spark向集群蜂箱表中插

  • 查询示例: 典型错误消息: 处理语句时出错:失败:执行错误,从org.apache.hadoop.hive.ql.exec.mr.MapredTask返回代码2 问题2:当我运行命令?我是否只运行相同的命令,但使用STRING而不是bigint?**完整错误消息:**