2

标题说明了大部分内容,但有问题的对象是:

>>> import dask.bag as db
>>> b = db.from_sequence([{'name': 'Alice',   'balance': 100},
...                       {'name': 'Bob',     'balance': 200},
...                       {'name': 'Charlie', 'balance': 300}],
...                      npartitions=2)

但是当我尝试

>>> b.to_textfiles('*.json')

我明白了

AttributeError: 'dict' object has no attribute 'endswith'

Traceback
---------
  File "/Users/jlatmann/anaconda/envs/python3/lib/python3.5/site-packages/dask/async.py", line 267, in execute_task
    result = _execute_task(task, data)
  File "/Users/jlatmann/anaconda/envs/python3/lib/python3.5/site-packages/dask/async.py", line 249, in _execute_task
    return func(*args2)
  File "/Users/jlatmann/anaconda/envs/python3/lib/python3.5/site-packages/dask/bag/core.py", line 1025, in write
    if not (firstline.endswith(os.linesep) or firstline.endswith('\n')):

低版本:0.9.0

系统版本

3.5.1 |蟒蛇4.0.0 (x86_64)| (默认,2015 年 12 月 7 日,11:24:55)[GCC 4.2.1(Apple Inc. build 5577)]

感谢您的关注!

4

1 回答 1

1

to_textfiles函数假定包的元素是字符串。我建议先映射str到你的包上

b.map(str).to_textfiles('*.json')

或者更好的是,假设您的输出文件是 json,请将您的数据明确转储为 json 格式

b.map(json.dumps).to_textfiles('*.json')
于 2016-06-06T17:35:52.187 回答