实验内容:统计timemachine.txt文件里的所有单词出现的次数,将统计结果写入到mysql中的wordCount表中。wordCount表结构为id word count,其中id为主键,word为单词,count为出现次数。 具体内容: 在mysql中新建spark数据库,在spark数据库中创建表wordCount 在wordCount表中插入一条标记数据(如下图) 编写代码,并运行编写的代码,将统计数据写入数据库 在mysql命令行查询wordCount表中的数据数量 在mysql命令行中验证是否有非法单词(select * from wordCount where word like '%'%') 使用pyspark,连接数据库,完成下列操作 timemachine.txt中一共有多少个单词(参考课本106页) timemachine.txt中一共出现过多少个单词 timemachine.txt中出现次数最多的10个单词 timemachine.txt中出现次数超过200次的单词 timemachine.txt中平均每个单词出现的次数
时间: 2024-03-26 15:40:20 浏览: 11
好的,我明白了。让我逐一回答你的问题:
1. timemachine.txt中一共有多少个单词?
可以使用以下代码实现:
```python
# 读取文件
rdd = sc.textFile("timemachine.txt")
# 切割单词
words = rdd.flatMap(lambda line: line.strip().split(" "))
# 统计单词个数
count = words.count()
print("timemachine.txt中一共有%s个单词" % count)
```
2. timemachine.txt中一共出现过多少个单词?
可以使用以下代码实现:
```python
# 读取文件
rdd = sc.textFile("timemachine.txt")
# 切割单词
words = rdd.flatMap(lambda line: line.strip().split(" "))
# 统计单词个数
count = words.distinct().count()
print("timemachine.txt中一共出现过%s个单词" % count)
```
3. timemachine.txt中出现次数最多的10个单词?
可以使用以下代码实现:
```python
# 读取文件
rdd = sc.textFile("timemachine.txt")
# 切割单词
words = rdd.flatMap(lambda line: line.strip().split(" "))
# 统计单词个数,按照出现次数降序排列,取前10个
top10 = words.map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b).sortBy(lambda x: x[1], False).take(10)
print("timemachine.txt中出现次数最多的10个单词为:")
for (word, count) in top10:
print(word, count)
```
4. timemachine.txt中出现次数超过200次的单词?
可以使用以下代码实现:
```python
# 读取文件
rdd = sc.textFile("timemachine.txt")
# 切割单词
words = rdd.flatMap(lambda line: line.strip().split(" "))
# 统计单词个数,过滤出现次数大于200的单词
result = words.map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b).filter(lambda x: x[1] > 200).collect()
print("timemachine.txt中出现次数超过200次的单词为:")
for (word, count) in result:
print(word, count)
```
5. timemachine.txt中平均每个单词出现的次数?
可以使用以下代码实现:
```python
# 读取文件
rdd = sc.textFile("timemachine.txt")
# 切割单词
words = rdd.flatMap(lambda line: line.strip().split(" "))
# 统计单词个数,求出现次数的总和
count_sum = words.map(lambda word: (word, 1)).reduceByKey(lambda a, b: a + b).map(lambda x: x[1]).sum()
# 统计单词个数
word_count = words.distinct().count()
# 计算平均出现次数
avg_count = count_sum / word_count
print("timemachine.txt中平均每个单词出现的次数为:%s" % avg_count)
```