Spark在从HDFS上读取文件运行,然后将运行后文件保存到hdfs上流程

1、提交代码

首先将Python代码上传到对应目录,然后用 spark-submit 命令提交代码。
./bin/spark-submit ./pythonProgram/spark_hello.py hdfs://hadoop102:8020/b.txt  hdfs://hadoop102:8020/output

hdfs://hadoop102:8020/b.txt 为需要分析的文件,hdfs://hadoop102:8020/output为输出文件存放路径

python代码如下:

from pyspark import SparkContext, SparkConf
import sys

__author__ = "yasaka"

conf = SparkConf().setAppName("yasaka").setMaster("local[*]")

sc = SparkContext(conf = conf)

print(sys.argv[1])
# rdd = sc.textFile("../data/b.txt")

# sys.argv[2] 表示传入的参数,由shell命令传入,一般为 hdfs url
rdd = sc.textFile(sys.argv[1])
result = rdd.flatMap(lambda line:line.split()).map(lambda word:(word,1)).reduceByKey(lambda a,b:a+b)

sorted_result = result.map(lambda pairs:(pairs[1], pairs[0])).sortByKey(ascending=False).\
    map(lambda pairs:(pairs[1], pairs[0]))
# print(sorted_result)

# sys.argv[2] 表示传入的参数,由shell命令传入
sorted_result.saveAsTextFile(sys.argv[2])

注意:

在这里插入图片描述
传入的参数为hdfs存放文件的url,其端口号8082为如下图片所示。
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值