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

Reading first few lines from files in google cloud storage

在处理大文件 ~100GB 文件大小时,有时我们需要检查 first/last 几行(header 和结尾行)。

最简单的方法是使用

在本地下载整个文件
gsutil cp gs://bucket_name/file_name .

然后使用 head/tail 命令检查 header/trailer 行,这是不可行的,因为从云中提取数据会耗费时间和相关成本。

和执行一样-

gsutil cat gs://bucket_name/file_name | head -1

另一种选择是在 GCP 表中创建外部 table 或在 datastudio 中可视化它们或从 dataproc 中读取 cluster/VM。

有没有其他快速选项可以检查来自云存储的 header/trailer 行?

gsutil cat -r

这里是关键

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

例如。 从文件的第 10 到第 100 个位置到 return 个字节:

gsutil cat -r 10-100 gs://bucket_name/file_name

到 return 个字节,从第 100 个到文件末尾:

gustil cat -r 100- gs://bucket_name/file_name

到 return 文件的最后 10 个字节:

gsutil cat -r -10 gs://bucket_name/file_name