当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.bag.Bag.to_avro用法及代码示例


用法:

Bag.to_avro(filename, schema, name_function=None, storage_options=None, codec='null', sync_interval=16000, metadata=None, compute=True, **kwargs)

将包写入一组 avro 文件

模式是说明数据的复杂字典,请参阅https://avro.apache.org/docs/1.8.2/gettingstartedpython.html#Defining+a+schemahttps://fastavro.readthedocs.io/en/latest/writer.html.它的结构如下:

{'name': 'Test',
 'namespace': 'Test',
 'doc': 'Descriptive text',
 'type': 'record',
 'fields': [
    {'name': 'a', 'type': 'int'},
 ]}

其中“name”字段是必需的,但“namespace” and “doc”是可选说明符; “type” 必须始终为 “record”。字段列表应该对输入记录的每个键都有一个条目,并且类型类似于 Avro 规范 (https://avro.apache.org/docs/1.8.2/spec.html) 的原始、复杂或逻辑类型。

每个输入分区生成一个 avro 文件。

参数

b: dask.bag.Bag
filename: list of str or str

要写入的文件名。如果是列表,则 number 必须与分区数匹配。如果是字符串,则必须包含一个全局字符“*”,它将使用name_function 进行扩展

schema: dict

Avro 模式字典,见上文

name_function: None or callable

将整数扩展为字符串,参见dask.bytes.utils.build_name_function

storage_options: None or dict

传递给后端的额外键/值选项file-system

codec: ‘null’, ‘deflate’, or ‘snappy’

压缩算法

sync_interval: int

文件中每个块中包含的记录数

metadata: None or dict

包含在文件头中

compute: bool

如果为 True,则立即写入文件和函数块。如果为 False,则返回延迟对象,可由用户在方便时计算。

kwargs: passed to compute(), if compute=True

例子

>>> import dask.bag as db
>>> b = db.from_sequence([{'name': 'Alice', 'value': 100},
...                       {'name': 'Bob', 'value': 200}])
>>> schema = {'name': 'People', 'doc': "Set of people's scores",
...           'type': 'record',
...           'fields': [
...               {'name': 'name', 'type': 'string'},
...               {'name': 'value', 'type': 'int'}]}
>>> b.to_avro('my-data.*.avro', schema)  
['my-data.0.avro', 'my-data.1.avro']

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.bag.Bag.to_avro。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。