<p>目前还没有实现。但是,您可以自己实现/扩展它(请参见<a href="https://gist.github.com/Fematich/97703910d867f972e9d01b21d8f41221" rel="nofollow">attached notebook</a>以获取使用我的apache_beam版本进行的示例+测试)。在</p>
<p>这是基于超类<code>FileSink</code>的一个<a href="https://github.com/apache/incubator-beam/blob/python-sdk/sdks/python/apache_beam/io/fileio.py" rel="nofollow">note in the docstring</a>,提到您应该覆盖<code>open</code>函数:</p>
<p>适用于我的apache_beam('0.3.0)版本的新类-孵化器.dev'):</p>
<pre><code>import apache_beam as beam
from apache_beam.io import TextFileSink
from apache_beam.io.fileio import ChannelFactory,CompressionTypes
from apache_beam import coders
class TextFileSinkWithHeader(TextFileSink):
def __init__(self,
file_path_prefix,
file_name_suffix='',
append_trailing_newlines=True,
num_shards=0,
shard_name_template=None,
coder=coders.ToStringCoder(),
compression_type=CompressionTypes.NO_COMPRESSION,
header=None):
super(TextFileSinkWithHeader, self).__init__(
file_path_prefix,
file_name_suffix=file_name_suffix,
num_shards=num_shards,
shard_name_template=shard_name_template,
coder=coder,
compression_type=compression_type,
append_trailing_newlines=append_trailing_newlines)
self.header = header
def open(self, temp_path):
channel_factory = ChannelFactory.open(
temp_path,
'wb',
mime_type=self.mime_type)
channel_factory.write(self.header+"\n")
return channel_factory
</code></pre>
<p>您随后可以按如下方式使用它:</p>
^{2}$
<p>有关完整的概述,请参见<a href="https://gist.github.com/Fematich/97703910d867f972e9d01b21d8f41221" rel="nofollow">the notebook</a>。在</p>