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

添加到配置单元表(ORC格式)中的新记录是追加到最后一个条带中还是一个全新的条带中?

姬朗
2023-03-14

然后我再输入100条记录到这个表中,新的100条记录会被追加到最后的条带中还是会创建一个新的条带?

我试着在HDFS集群上测试它,似乎每次我们插入新记录时,都会创建一个新文件(当然,也会创建新条带)。想知道为什么?

共有1个答案

司马高昂
2023-03-14

原因可能是HDFS不支持编辑文件。

所以当我们在配置单元表中插入数据时,就会创建新的文件。

如果要合并这些文件,可以使用concatenate

Alter table <table_name> CONCATENATE;
insert overwrite <db_table>.<table1> select * from <db_table>.<table1>
 类似资料:
  • 我可以更新单个列,但不能更新从另一个表引用的多个列。 我启用了所有ACID属性以支持配置单元(1.2.1)表更新 我有两张桌子, 表1: 模式: 创建表table1(emp_id int,emp_name string,etime timestamp) 数据: emp_id | emp_name | etime 1|大卫|2016-01-08 12:27:30 约翰2016-01-08 12:27

  • 我有一个for循环,它遍历CSV中的每一行,我创建了一个包含列表的字典,但是列表被重写了,因为字典键被重复了几次。我如何总结或追加到列表中的第二(1)位置相同的键的下一个值下一个循环迭代? 因为使用append时,如果再次找到现有键,则会覆盖该值,因此该键的值会被一次又一次地覆盖。 CSV中的字段包括: 输出应该是这样的:

  • 问题内容: 有没有一种方法可以检查我是否在最后一条记录上?谢谢 问题答案: 使用此模式来标识和处理结果的最后一行:

  • 我有两个表客户和订单,下面是结构。 表-客户 ID customer_name 表-订单 ID order_id customer_id customers表包含customers记录,orders表包含客户下的订单, orders表中的customer_id链接到customers表的id字段。 现在一个客户可以有零或一个或多个订单,我想要得到客户下的最后一个订单只。 当我运行以下查询(一个简单

  • 问题内容: 我需要初始化一个常量HashMap,并希望在一行语句中完成它。避免这样的事情: 类似于目标C: 看了这么多,我还没有找到任何显示如何做到这一点的例子。 问题答案: 您可以使用 Double Brace初始化 ,如下所示: 作为警告,请参阅Java的效率效率“ Double BraceInitialization”,了解它可能带来的性能影响。

  • 问题内容: 有一个包含数据的表,如下所示: 如果我运行查询,我将得到的结果为: 什么查询将返回以下结果? 即,应返回每个组中的最后一条记录。 目前,这是我使用的查询: 但这看起来效率很低。还有其他方法可以达到相同的结果吗? 问题答案: MySQL 8.0现在支持窗口功能,就像几乎所有流行的SQL实现一样。使用这种标准语法,我们可以编写每组最多n个查询: 以下是我在2009年为此问题写的原始答案: