You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PySpark在Databricks上统计文本文件所有单词的总字符长度

PySpark统计所有单词总长度解决方案

方式1:基于你已有的DataFrame直接求和

你已经生成了带len列的DataFrame,直接调用聚合求和函数即可:

# 导入pyspark内置函数
from pyspark.sql.functions import sum as spark_sum

# 对len列聚合求和,提取最终结果
total_length = counts_df2.agg(spark_sum("len").alias("total_len")).collect()[0]["total_len"]
print(f"所有单词总长度为:{total_length}")

如果需要直接在Databricks页面展示结果,也可以直接用:

display(counts_df2.agg(spark_sum("len").alias("total_length")))

方式2:直接用RDD算子计算(无需转DataFrame)

如果你不需要保留每个单词的长度明细,直接用RDD算子计算更简洁:

lee_file = sc.textFile("/FileStore/tables/lee.txt")
total_length = lee_file.flatMap(lambda line: line.split(" ")) \
                       .map(lambda word: len(word)) \
                       .sum()
print(f"所有单词总长度为:{total_length}")

注意事项

你当前的逻辑是按空格拆分单词,标点符号会被计入单词长度,比如示例里的amet,长度会被统计为5、elit.长度会被统计为5。如果需要排除标点统计纯字母长度,可以在计算长度前对单词做清洗,示例如下:

import re
# 清洗掉非字母数字的字符后再算长度
.map(lambda word: len(re.sub(r'[^a-zA-Z0-9]', '', word)))

内容的提问来源于stack exchange,提问作者Abiodun Adeoye

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:27:01