我有一个非常基本的Python Dataflow工作,从pub/sub读取一些数据,应用FixedWindow并写入Google Cloud Storage。
transformed = ...
transformed | beam.io.WriteToText(known_args.output)
输出被写入--output中特定的位置,但只写入临时阶段,即。
gs://MY_BUCKET/MY_DIR/beam-temp-2a5c0e1eec1c11e8b98342010a800004/...some_UUID...
当进一步测试时,我注意到streaming_wordcount示例也有同样的问题,但是标准wordcount示例写得很好。也许问题在于开窗,或者从PubSub阅读?
WriteToText似乎与PubSub的流源不兼容。可能有变通办法,或者Java版本可能兼容,但我选择使用完全不同的解决方案。
Python SDK中的WriteToText
转换不支持流。
相反,您可以考虑apache_beam.io.fileio
中的转换。在本例中,您可以编写如下内容(假设窗口为10分钟):
my_pcollection = (p | ReadFromPubSub(....)
| WindowInto(FixedWindows(10*60))
| fileio.WriteToFiles(path=known_args.output))
这足以为每个窗口写出单独的文件,并随着流的前进继续这样做。
您将看到如下所示的文件(假设输出为gs://mybucket/
)。当windows被触发时,文件将被打印出来:
gs://mybucket/output-1970-01-01T00_00_00-1970-01-01T00_10_00-0000-00002
gs://mybucket/output-1970-01-01T00_00_00-1970-01-01T00_10_00-0001-00002
gs://mybucket/output-1970-01-01T00_10_00-1970-01-01T00_20_00-0000-00002
gs://mybucket/output-1970-01-01T00_10_00-1970-01-01T00_20_00-0001-00002
...
默认情况下,这些文件具有$prefix-$start-$end-$pane-$shard-of-$numshards$suffix$compressionsuffix
名称-其中prefix默认情况下是output
,但是您可以传递一个更复杂的函数来命名文件。
如果您希望自定义文件的编写方式(例如文件的命名、数据的格式或类似的内容),可以查看WriteTofiles
中的额外参数。
您可以在这里看到一个在Beam测试中使用的转换的示例,其中包含了更复杂的参数--但听起来默认行为对您来说应该足够了。
问题内容: 我正在从Google文档中提取数据,进行处理,然后将其写入文件(最终我将其粘贴到Wordpress页面中)。 它具有一些非ASCII符号。如何将这些安全地转换为可以在HTML源代码中使用的符号? 目前,我正在将所有内容都转换为,将它们全部合并为Python字符串,然后执行以下操作: 最后一行存在编码错误: 编解码器无法解码位置12286的字节:序数不在范围内(128) 部分解决方案:
问题内容: 我在javascript中有一个JSON对象。我只想将JSON对象写入文本文件。到目前为止,从我遇到的情况来看,由于客户端的安全问题,无法这样做。有解决方法吗?如果最初放置一些虚拟值,是否可以修改已经存在的文件? 谢谢 问题答案: 您可以做的一件事就是将JSON设置为即时下载。 工作演示:http : //jsfiddle.net/sLq3F/ 除此之外,由于安全原因,您无法在客户端的
问题内容: 我有一个网站,每次用户登录或注销时,我都会将其保存到文本文件中。 如果不存在附加数据或创建文本文件,我的代码将不起作用。这是示例代码 再次打开它后,它似乎没有追加到下一行。 另外,我认为在两个用户同时登录的情况下也会出现错误,会影响打开文本文件并随后保存吗? 问题答案: 尝试这样的事情:
问题内容: 因此,我正在使用 BufferedWriter, 并希望将一些文本写入文本文件。 由于某种原因,正在创建文本文档,但是没有写入任何文本,这是为什么呢? 问题答案: 您需要关闭或使用
问题内容: 我需要在文本文件的开头写入一些内容。我有一个包含内容的文本文件,我想在此内容之前写点东西。说我有; 先生,下午好,今天好吗? 我很好你怎么样? 感谢您的询问,我很棒 修改后,我希望它像这样: Page 1-Scene 59 25.05.2011 先生,下午好,今天好吗? 我很好你怎么样? 感谢您的询问,我很棒 刚刚组成的内容:)我如何以这种方式修改文本文件? 问题答案: 您无法真正 通
问题内容: 我正在尝试从文本文件中读取UTF8文本,然后将其中一些打印到另一个文件中。我正在使用Linux和gcc编译器。这是我正在使用的代码: 目前,它适用于英文字符。 问题答案: 这段代码对我有用: