具有选定列的 HDFS 集群内副本

HDFS intracluster copy with selected columns

我正在使用 Avro 文件在 HDFS 中存储数据。我需要从一个 avro 文件复制选定的列数据,并将其发送到同一集群中的另一个位置,并使用它自己的模式文件(具有选定的列信息)。我怎样才能做到这一点?是否可以使用 Hive 实现?或者 HDFS 中是否有任何实用程序可以帮助我做到这一点?

这是必需的,因为一个组必须能够访问整个 table,而另一个组应该只能访问少数几列。所以,我需要它们位于 HDFS 中的一个单独位置,只有所需的模式和 avro 文件。

有多种创建方法,我想说最简单的是使用 Hive 或 Spark。在配置单元中,您可以使用 reader 架构创建一个 table(仅包含您想要的字段)并将 table 位置指向您的目标目录。之后,您需要做的就是从源 table 中插入,仅选择您想要的字段到 reader table.

正如评论一样,创建 reader 架构是避免此类情况下数据重复的一个很好的解决方案。如果没有严格要求创建数据子集,我建议使用 reader 模式