Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 配置单元-永久更改整个列中的日期和类型的正确方法_Date_Hadoop_Hive_Ambari_Hdp - Fatal编程技术网

Date 配置单元-永久更改整个列中的日期和类型的正确方法

Date 配置单元-永久更改整个列中的日期和类型的正确方法,date,hadoop,hive,ambari,hdp,Date,Hadoop,Hive,Ambari,Hdp,如果有人能在这里一步一步地解释一下,在通过Hive View导入到HDP 2.6.5的表中,将日期格式和列类型从字符串更改为日期的过程应该是什么样子,我将不胜感激。 数据源是著名的MovieLens 100K数据集“u.item”文件,来自: $hive-版本为:1.2.1000.2.6.5.0-292 列的日期格式为:“01-Jan-1995” 列的数据类型为:“字符串” ACID事务处于“打开”状态 最后,我希望将整个列中的数据永久转换为正确的配置单元格式“yyyy-MM-dd”,并将下一

如果有人能在这里一步一步地解释一下,在通过Hive View导入到HDP 2.6.5的表中,将日期格式和列类型从字符串更改为日期的过程应该是什么样子,我将不胜感激。 数据源是著名的MovieLens 100K数据集“u.item”文件,来自:

$hive-版本为:1.2.1000.2.6.5.0-292 列的日期格式为:“01-Jan-1995” 列的数据类型为:“字符串” ACID事务处于“打开”状态

最后,我希望将整个列中的数据永久转换为正确的配置单元格式“yyyy-MM-dd”,并将下一列类型转换为“Date”。 我以前看过十几篇关于类似问题的文章。当然,问题不是这样显示列,只需使用以下命令即可轻松完成:

从moviesnames中选择unixtimeunix\u timestamp\u date、'dd-MMM-yyyy'、'yyyy-MM-dd'

问题是最终要这样写下来。不幸的是,尽管配置单元配置中包含了原子操作,但这无法通过以下方式通过更新完成

更新moviesnames SET prodate=从moviesnames中选择日期,从moviesnames中选择“dd-MMM-yyyy”

使用配置单元SQL实现上述目标的最简单方法是什么?通过复制和转换列或整个表?

尝试以下操作:

UPDATE moviesnames SET prodate = to_date(from_unixtime(UNIX_TIMESTAMP(prod_date,'dd-MMM-yyyy')));

谢谢,我试过这种方法,这是我收到的错误消息。也许问题出在表结构本身?org.apache.hive.service.cli.HiveSQLException:编译语句时出错:失败:SemanticException[错误10297]:尝试对不使用AcidOutputFormat或未使用AcidOutputFormat的表default.moviesnames执行更新或删除bucketed@uhlik桌子应该是半兽人的,带扣的。桌子是半兽人的,但我不确定如何检查它是否有扣。@uhlik描述扩展电影名称正如我提到的,该表是使用配置单元视图中的“上载表”选项卡创建的,因此我将尝试根据您的说明从SQL创建它。