我正在寻找一种方法来修改配置单元中的拼花数据表,以删除一些字段。该表是受管理的,但这并不重要,因为我可以将其转换为外部
问题是我不能使用命令<code>ALTER TABLE…用分区拼花表替换列。
它适用于文本文件格式(分区或非分区),仅适用于非分区拼花桌子。
我尝试替换列,但结果如下:
hive> ALTER TABLE db_test.mytable REPLACE COLUMNS(name String);
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask.
Replacing columns cannot drop columns for table db_test.mytable.
SerDe may be incompatible
我考虑过一些解决方案,但没有一个适合我的情况:
首先
-[可选]在外部转换表
-删除该表
-使用所需字段重新创建表
-MSCK修复表以添加HDFS分区
-[可选]转换回托管表。
第二个
-创建临时表作为使用我选择的字段的原始表的选择。
-删除原始表。
-将临时表重命名为原始名称。
这两个选项都会影响我的进程,因为我将丢失表的统计信息。这张表被黑斑羚的微策略消耗了,我需要整理统计数据
此外,第二种解决方案对于非常大的数据表是不好的。
有什么建议吗?< br >预先感谢。
从Spark中删除分区的替代方案是什么?有另一个实现来做到这一点? 谢了。
我一直试图从内部存储中删除所选项目的列表,但无法这样做。 它什么都不做。我该怎么改还是有什么更好的办法?任何帮助都将不胜感激。
谢谢,马亨德
我只是做了将我的文件夹初始化为git存储库,然后使用添加了一个远程存储库。现在我想删除这个并添加一个新的存储库。我怎么做?
与这个问题类似,我正在尝试断开我的hg存储库与一个死的远程位置的连接,同时保持本地版本控制。 的汞当量是什么?
我有一个外部配置单元表,其中有诸如year=2017,year=2018之类的分区,在它们内部,我还有year=2017和year=2018的每个月的分区。 如果是内部表,会发生什么情况?