数据工程作业四,spark分布式计算平台,使用 Transformation 操作,对文本中的单词排序,按降序打印单词和词频信息

数据工程作业四,使用带有spark的docker容器统计文件的词频,排序(使用 Transformation 操作 对文本中的单词排序,按降序打印单词和词频信息)

第一步在Ubuntu中下载docker容器

  • 首先,更新软件包索引,并且安装必要的依赖软件,来添加一个新的 HTTPS 软件源:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  • 使用下面的 curl 导入源仓库的 GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  • 将 Docker APT 软件源添加到你的系统:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  • 安装docker的最新版本
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
  • 允许当前用户获得权限使用docker,其中$USER就是指当前用户
sudo usermod -aG docker $USER
  • 检查docker是否成功安装
docker container run hello-world
  • 若获得如下信息即为成功
    在这里插入图片描述

拉取(pull)带有spark环境的images

  • 这是我们老师的镜像,spark 、jupyter 、python环境都已经配置好了
docker run -it --rm -v ~/test:/home/jovyan/test -p 8888:8888 -p 4040:4040 bigdatateam/all-spark-with-data
  • 问题,出现no space left,这里只提供解决思路
    • 第一种,查看其他目录的空间是否充足(df -h),如果充足,将docker的root dir改到空间充足的目录下
    • 第二种,扩展磁盘,先通过vmware进行扩容
      • 然后在Ubuntu下下载一个Gparted,对刚刚扩容的空间进行分配,否则不会生效
      • 我是使用的新建一个磁盘,然后将该磁盘挂在到一个空目录下,最后将root dir指向该文件夹
    • 磁盘扩容的具体操作,转到另一篇blog
      Ubuntu磁盘扩展,挂载

进行实验

  • 首先看以下网址的代码是否能够跑通

github下的spark测试代码网址

  • 要进行排序统计的核心代码如下
#统计行的数量
print("wiki文本有:") print sc.textFile("/data/wiki/en_articles_part/articles-part").count()
print("行")
#统计单词的频率,并打印前十的单词
rdd = sc.textFile("/data/wiki/en_articles_part/articles-part")
#将rdd通过空格划分为单词,并分类
result = rdd.flatMap(lambda x: x.split(' ')).map(lambda x: (x, 1)).reduceByKey(lambda a, b: a + b)
#排序,且降序
sorted_result = result.sortBy(lambda x: x[1], ascending=False)
#打印前十的单词
print(sorted_result.collect()[0:10])
  • 如果你使用的是我指定位置的文件和镜像你应该获得如下结果
    在这里插入图片描述

结束,peace

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值