我在 Google Cloud Storage 中有一些大.avro
文件,我想将它们全部合并到一个文件中。
我有
java -jar avro-tools.jar concat
但是,由于我的文件位于 google 存储路径中:gs://files.avro
我无法使用 avro-tools 连接它们。关于如何解决它的任何建议?
我在 Google Cloud Storage 中有一些大.avro
文件,我想将它们全部合并到一个文件中。
我有
java -jar avro-tools.jar concat
但是,由于我的文件位于 google 存储路径中:gs://files.avro
我无法使用 avro-tools 连接它们。关于如何解决它的任何建议?
您可以使用该gsutil compose
命令。例如:
gsutil compose gs://bucket/obj1 [gs://bucket/obj2 ...] gs://bucket/composite
注意:对于非常大的文件和/或非常低的每台机器带宽,您可能需要拆分文件并从多台机器上传,然后手动组合文件的这些部分。
在我的案例中,我使用以下值对其进行了测试:foo.txt包含一个词Hello和bar.txt包含一个词World。运行此命令:
gsutil compose gs://bucket/foo.txt gs://bucket/bar.txt gs://bucket/baz.txt
baz.txt将返回:
Hello
World
注意:GCS 不支持跨桶组合。
以防万一您在完整性检查方面遇到异常错误,请运行gsutil help crcmod
以获取有关如何修复它的说明。
查看https://github.com/spotify/gcs-tools
轻量级包装器,将 Google Cloud Storage (GCS) 支持添加到常见 Hadoop 工具中,包括avro-tools、parquet-cli、Avro 文件中用于 Scio 的 Protobuf 的 proto-tools 以及用于 Magnolify 代码生成的 magnolify-tools,以便它们可以在 Google Compute Engine (GCE) 实例之外的常规工作站或笔记本电脑上使用。