我在谷歌云存储中有一些大的.avro
文件,我想将所有文件合并到一个文件中。
我有
java -jar avro-tools.jar concat
然而,由于我的文件在谷歌存储路径:gs://files.avro
中,我无法使用avro工具连接它们。有什么关于如何解决的建议吗?
您可以使用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
轻量级包装器,它为常见的Hadoop工具添加了谷歌云存储(GCS(支持,包括avro工具、parquet-cli、avro文件中Scio Protobuf的proto工具,以及用于magnolify代码生成的magnolify工具,因此它们可以在谷歌计算引擎(GCE(实例之外的常规工作站或笔记本电脑上使用。