pyspark计算词频

通过计算词语的词频,实现一个字典,字典键为名字,值为出现的次数,词频归一化 当前词语的出现次数/出现最多的词语次数-出现最少的词语次数,current_value/(max_value - min_value),循环每个词语的字段,最后构建字典{名字第一个字符:[(名字,对应频率),(),…]},类似{“病”:[[“病毒感染”,0.1],[“病毒性上呼吸道感染”,0.001],]

计算词频关键代码:

lines = sc.textFile(file_path)
result = lines.flatMap(lambda x:x.split(" ")).countByValue()

构建字典代码:

在这里插入图片描述

1.pkuseg.pktest() 对数据进行分词

2.配置spark context环境

3.循环要计算词频的目录分别计算每个文件的词频

4.生成字典 {名字第一个字符:[(名字,对应频率),(),…]}

困难:
1.加载spark context上下文失败,网上搜索了很多,包括改spark conf目录的配置文件等,无效
最后在程序里修改配置 ,跟电脑的配置有关
在这里插入图片描述

sc = SparkContext(conf=conf)

2.加载数据内存不够,计算词频内存溢出

解决办法:

更改加载文件方式从 sc.parallelize[]到sc.textFile(文件名) ,通过调用SparkContext的parallelize方法,在一个已经存在的Scala集合上创建的(一个Seq对象)。集合的对象将会被拷贝,创建出一个可以被并行操作的分布式数据集, 非常慢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值