0
我有一个BigQuery表,其中每行代表一个文本文件(gs:// ...)和一个行号。从PCollection中提取文件名并有效地解析它们
file, line, meta
file1.txt, 10, meta1
file2.txt, 12, meta2
file1.txt, 198, meta3
每个文件大约1.5Gb,我的存储桶中有大约1k个文件。我的目标是在BQ表中指定提取行。
我决定执行以下方案:
- 地图
table
=>KV<file,line>
- 减少
KV<file,line>
=>KV<file, [lines]>
- 地图
KV<file, [lines]>
=>[KV<file, rowData>]
其中rowData
意味着实际的数据从一些file
从lines
行。
如果我仔细阅读文档和SO,TextIO.Read
不应该在这种情况下使用。作为解决方法,我可以使用GcsIoChannelFactory
从GCS读取文件。这是对的吗?对于所描述的任务而言,这是一种可取的方法吗