使用PyArrow高效统计单词数的方法咨询
使用Apache Arrow高效统计单词数的正确方法
你之前的代码compute.count(compute.utf8_split_whitespace(table['text']))之所以只返回ChunkedArray的长度,是因为compute.count()统计的是输入数组的元素个数——这里的元素是每行文本拆分后的数组,所以它实际统计的是数据的行数,而非总单词数。
正确的做法是先计算每行文本拆分后的单词数量,再对所有行的结果求和:
import pyarrow.compute as compute # 1. 拆分每行文本为单词数组,再计算每行的单词数 word_counts_per_row = compute.list_length(compute.utf8_split_whitespace(table['text'])) # 2. 对所有行的单词数求和,得到总单词数 total_words = compute.sum(word_counts_per_row)
这个方法利用Arrow的矢量化计算能力,全程在底层高效处理,避免了Python层面的循环,能最大化利用Arrow的性能优势。
内容的提问来源于stack exchange,提问作者Jasper
相关产品推荐
相关产品推荐

