【发布时间】:2016-08-30 21:52:40
【问题描述】:
我想知道是否有办法使用谷歌数据流找出文件中的总行数。任何代码示例和指针都会有很大帮助。基本上,我有一个方法
int getCount(String fileName) {}
因此,上述方法将返回总行数,其实现将是数据流代码。
谢谢
【问题讨论】:
-
您能否澄清一下文件有多大,以及为什么要为此使用 Dataflow,而不是直接读取文件并逐行计算行数的 Java 程序?除非文件的大小至少有数 GB,并且除非文件已经存储在 Google Cloud Storage 上,否则 Dataflow 很可能不是完成这项工作的最佳工具。
-
感谢您的关注。是的文件基本上是一个 gz 文件,大小为 GBs 。文件也位于 GCS 存储桶中。除了数据流,你有没有想到其他的方式或者有示例代码,链接给我看看。我可以使用 PCollection(String) 中的数据流从 GCS 存储桶中读取文件并对其应用 Count.Globally 但这又给了我 PCollection(Long),因此无法从我的方法返回单个 long 值。谢谢。
-
@chchrist:正如我所提到的,我已经使用了 Count.Globally 但问题是它还返回 PCollection
我需要我的方法来返回 Long 值。我不确定如何从 PCollection 读取值