当前位置: 首页 > 知识库问答 >
问题:

如何在Apache Beam中以byte[]的形式读取文件?

华旭
2023-03-14

我们目前正在开发云数据流上的概念验证Apache Beam管道。我们将一些文件(没有文本;自定义二进制格式)放入Google Cloud Buckets,并希望将这些文件作为byte[]读取,并在流中反序列化它们。但是,我们找不到能够读取非文本文件的波束源。唯一的想法是扩展FileBasedSource类,但我们认为应该有一个更简单的解决方案,因为这听起来是一个非常简单的任务。

谢谢你们的帮助。

共有1个答案

臧欣怿
2023-03-14

这实际上是一个非常有用的特性,目前正在pull request#3717中进行审查

不管怎样,我会一般地回答,只是为了传播信息。

FileBasedSource和Beam的源抽象的主要目的是提供文件集合的灵活拆分,将其视为一个庞大的数据集,每行包含一条记录。

 类似资料:
  • 问题内容: 我使用HttpResponseMessage类作为AJAX调用的响应,该调用从服务返回JSON数据。从服务返回AJAX调用后暂停执行时,我看到此类包含一个Content属性,该属性的类型为System.Net.Http.StreamContent。 如果在浏览器中进行检查,我会看到成功进行了网络调用,并以JSON数据作为响应。我只是想知道为什么我无法在Visual Studio中看到返

  • 我正在尝试将活动转换为片段。< code>runOnUiThread上的错误标记。关于过去: GoogleActivityV2从活动扩展而来。在类ExecuteTask中运行Nuithread。类ExecuteTask嵌套在活动上。 (运行正常)现在: GoogleActivityV2从片段扩展而来。在类ExecuteTask中运行Nuithread。类ExecuteTask嵌套在活动上。(run

  • 问题内容: 我正在尝试编写一个按位读取文件的读取器,但是大文件有问题。我试图读取100 mb的文件,它花了3分钟多的时间,但是仍然有效。 但是,然后我尝试使用500 mb的文件,但它甚至没有启动。由于这一行: 现在,我正在寻找解决方案,但找不到任何解决方案。也许有人解决了它,可以分享一些代码,技巧或想法。 问题答案: 我建议您尝试使用内存映射。 这将使整个文件几乎立即可用(大约10毫秒),并且几乎

  • 我需要采取以下形式的输入得分/最大(例93/100),并将其存储为浮动变量。我遇到的问题是python做反斜杠表示的除法,因为两个数字是整数,结果是0。即使我将输入转换为浮点数,结果也是0.0。这里是我的代码供参考: 如果输入93/100,exam1变量将等于0.0,而不是预期的0.93。

  • 我在玩OpenGL ES2和浮动缓冲区。实际上,我试图将处理顶点数据的FloatBuffer保存到一个二进制文件中。它似乎起作用了,但在读取浮点并将它们一起放回浮点缓冲区后,对象就被搞乱了。 为了从缓冲区保存浮点数据,我使用以下代码: 阅读: FloatBuffers的创建方式如下: 有人知道为什么会这样吗? 更新:我已经比较了写入和读取的数据,它们是相等的。问题仍然存在,这只是更令人困惑。

  • 主要内容:字符读取函数 fgetc,字符写入函数 fputc在C语言中,读写文件比较灵活,既可以每次读写一个字符,也可以读写一个字符串,甚至是任意字节的数据(数据块)。本节介绍以字符形式读写文件。 以字符形式读写文件时,每次可以从文件中读取一个字符,或者向文件中写入一个字符。主要使用两个函数,分别是 fgetc() 和 fputc()。 字符读取函数 fgetc fgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符。fget