首页 > 解决方案 > 最新版本不支持 dask concat

问题描述

我正在尝试测试在此页面上找到的 dask 命令...

https://extrapolations.dev/blog/2015/07/reproduceit-reddit-word-count-dask/

我在这一行遇到错误:

单词 = body.map(nltk.word_tokenize).concat()

我猜自从文章发表以来,dask API 已经发生了变化。我如何使用这个文件重写它...

aws s3 cp s3://reddit-comments/2007/RC_2007-10 。

到目前为止,我已设法运行此代码:

import re
import json
import time
import nltk
import dask
import dask.bag as db
import nltk
from nltk.corpus import stopwords

data = db.read_text("RC_2007-10" ).map(json.loads)
no_stopwords = lambda x: x not in stopwords.words('english')

is_word = lambda x: re.search("^[0-9a-zA-Z]+$", x) is not None

subreddit = data.filter(lambda x: x['subreddit'] == 'movies')
bodies = subreddit.pluck('body')

标签: dask

解决方案


我认为您正在寻找 flatten 方法:

In [1]: import dask.bag as db                                                   

In [2]: b = db.from_sequence([[1, 2, 3], [4, 5, 6]])                            

In [3]: b.flatten().compute()                                                   
Out[3]: [1, 2, 3, 4, 5, 6]

https://docs.dask.org/en/latest/bag-api.html


推荐阅读