从谷歌云存储中的文件中读取前几行

Khi*_*han 2 google-cloud-storage google-cloud-platform

在处理约 100GB 文件大小的大文件时,有时我们需要检查前几行/最后几行(标题行和结尾行)。

最简单的选择是使用以下命令在本地下载整个文件

gsutil cp gs://bucket_name/file_name .
Run Code Online (Sandbox Code Playgroud)

然后使用头/尾命令检查标题/尾部行,这是不可行的,因为从云中提取数据将非常耗时且相关成本。

这与表演相同 -

gsutil cat gs://bucket_name/file_name | head -1
Run Code Online (Sandbox Code Playgroud)

另一个选项是在 GCP 表中创建外部表或在 datastudio 中可视化它们或从 dataproc 集群/VM 中读取。

是否有其他快速选项可以从云存储中检查标题/拖尾行?

Khi*_*han 8

gsutil cat -r
Run Code Online (Sandbox Code Playgroud)

是这里的关键。

它仅输出对象的指定字节范围。偏移量从0开始。

例如。要从文件中返回第 10 到 100 个位置的字节:

gsutil cat -r 10-100 gs://bucket_name/file_name
Run Code Online (Sandbox Code Playgroud)

返回从第 100 字节到文件末尾的字节:

gustil cat -r 100- gs://bucket_name/file_name
Run Code Online (Sandbox Code Playgroud)

要从文件返回最后 10 个字节:

gsutil cat -r -10 gs://bucket_name/file_name
Run Code Online (Sandbox Code Playgroud)