附加到ORC文件

RPR

我是大数据和相关技术的新手,因此不确定是否可以将数据追加到现有的ORC文件中。我正在使用Java API编写ORC文件,并且当我关闭Writer时,无法再次打开该文件以向其中写入新内容,基本上是在添加新数据。

有没有一种方法可以使用Java Api或Hive或任何其他方式将数据附加到现有的ORC文件中?

进一步说明,将Javautil.Date对象保存到ORC文件时,ORC类型存储为:

struct<timestamp:struct<fasttime:bigint,cdate:struct<cachedyear:int,cachedfixeddatejan1:bigint,cachedfixeddatenextjan1:bigint>>,

对于Java BigDecimal,它是:

<margin:struct<intval:struct<signum:int,mag:struct<>,bitcount:int,bitlength:int,lowestsetbit:int,firstnonzerointnum:int>

这些是否正确,是否有任何相关信息?

萨姆森·沙夫里希特(Samson Scharfrichter)

不,您不能直接附加到ORC文件。也没有Parquet文件。内部元数据与数据交错的具有复杂内部结构的任何列格式也是如此。

引用官方的“ Apache Parquet ”网站...

在数据之后写入元数据,以允许单遍写入

然后引用官方的“ Apache ORC ”站点...

由于HDFS在写入后不支持更改文件中的数据,因此ORC将顶级索引存储在文件的末尾(...)。文件的尾部包括3个部分:文件元数据,文件页脚和后记。

好吧,从技术上讲,如今您可以将其附加到HDFS文件中。您甚至可以截断它。但是这些技巧仅对某些极端情况有用(例如,Flume会fflush不时地以微批量的方式将消息馈入HDFS“日志文件”中)。

对于蜂巢事务支持他们使用不同的技巧:创造每一笔交易(即微批)在后台运行的周期性工作夯实了新的ORC文件,点菜HBase的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章