Windows下PySpark的配置
环境:
hadoop-2.7.4
spark-2.4.3-bin-hadoop2.7
jdk-1.8
hadooponwindows
Anaconda3
python-3.6
需要注意的是,这些版本尽量保持和上面所列的版本一致,否则可能会出现报错。
资源下载地址
需要下载的资源链接放在这便于下载。
hadoop-2.7.4
spark-2.4.3-bin-hadoop2.7
hadooponwindows
Anaconda3
jdk-1.8
环境变量的设置
将解压的文件夹目录放到系统环境变量里
JAVA_HOME
HADOOP_HOME
SPARK_HOME
path
%JAVA_HOME%\bin
%SPARK_HOME%\bin
%HADOOP_HOME%\bin
文件拷贝
将hadooponwindows的bin目录覆盖并替换hadoop-2.7.4下的bin目录。
由于要在windows下使用hadoop,因此需要使用该项目的一些配置文件。
PySpark的开发环境
我们需要把spark下python文件夹内的pyspark文件夹复制到我们本机的python的第三方库文件夹内。
需要注意的是,python的环境需要为3.6。
如果没有使用Anaconda安装
python的第三方库的目录一般情况下为:
C:\Users{你自己的用户名}\AppData\Local\Programs\Python\Python36\Lib\site-packages\
如果使用Anaconda安装
需要自己新建一个3.6的环境
如果使用navigator的话,直接在Environment内create就行
如果是使用命令行的话,命令为:
两个都是可以的
conda create --name your_env_name python=3.6
conda create -n your_env_name python=3.6
这样的话,创建后我们的环境就在Anaconda的envs目录下,我们可以直接找到该环境的Lib\site-packges\。
如果Anaconda的envs的话,可能就在C:\Users{用户名}.conda\envs\下。
如果create失败的话,可以尝试修改pip镜像:
在windows用户名文件夹下新建文件夹pip,并在pip文件夹内新建文件pip.ini,内容为:
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
最后好像还需要在Python环境里安装py4j的库。
这个命令需要在prompt下运行。
conda activate {环境名}
pip install py4j
测试
我们可以在Anaconda prompt下测试。使用
conda activate {环境名}
然后输入pyspark,就会出现pyspark的页面。
如果运行python代码出现错误,可能是由于Java的环境变量导致的。这里可以在代码中确定环境变量。
import os
# 这个Java版本因人而异
os.environ['JAVA_HOME'] = 'C:\Program Files\Java\jdk1.8.0_152'
WordCount & TopSort
words
word 233 hahaha zsh 1110
spark hadoop heiki 2021
zsh dsm word hahaha demo
WordCount
# WordCount
from pyspark import SparkConf, SparkContext
conf = SparkConf().setAppName("wordcount").setMaster("local")
sc = SparkContext(conf=conf)
sc.setLogLevel("ERROR")
inputdata = sc.textFile("../data/words")
output = inputdata.flatMap(lambda x: x.split(" ")).map(lambda x: (x, 1)).reduceByKey(lambda a, b: a + b)
result = output.collect()
for i in result:
print(i)
sc.stop()
csvData
564979075325,攀枝花凯特芒果9斤新鲜大果当季特产树上熟甜心青水果芒整箱包邮,23.80,100万+,118881
565422430890,甘福园四川安岳黄柠檬6斤新鲜当季水果现摘一级鲜柠檬青批发包邮,17.80,100万+,92060
566532273700,海南金都一号红心火龙果5斤新鲜水果应季大红肉蜜宝一整箱10包邮,22.80,100万+,222785
575419495977,烟台红富士苹果水果9斤新鲜山东栖霞特产脆甜丑萍果当季整箱5包邮,19.90,100万+,303260
572643713345,甘福园墨西哥进口牛油果15个装新鲜当季水果鳄梨整箱应季批发包邮,18.80,90万+,94165
577625541963,陕西洛川红富士苹果水果9斤新鲜应当季脆甜冰糖心丑萍果整箱5包邮,26.80,90万+,63320
596645678584,新鲜绿心猕猴桃5斤现摘奇异果应当季水果大狝弥猴孕妇整箱10包邮,15.80,80万+,54253
580294338176,甘肃民勤人参果9斤新鲜应当季孕妇水果黄肉人生果大长果整箱5包邮,29.90,80万+,84937
577845932781,澳洲进口鲜橙子9斤新鲜现摘水果当季果冻脐甜橙手剥橙整箱10包邮,35.80,80万+,104894
607304225852,云南金银水果玉米9斤新鲜生吃甜玉米棒子粒粘糯黏苞谷米蔬菜5包邮,21.80,60万+,148517
592810219412,智利进口金果黄心猕猴桃新鲜奇异果水果当季整箱大果弥猴桃5包邮,38.80,60万+,119375
627556724842,陕西红富士苹果水果9斤新鲜整箱应当季嘎啦平果冰糖心5丑萍果包邮,18.80,50万+,79651
571887415575,贝贝南瓜板栗味小南瓜9斤新鲜蔬菜正宗日本甜糯南瓜宝宝辅食5包邮,23.80,50万+,86220
566708275445,甘福园福建六鳌沙地红蜜薯9斤红心地瓜新鲜板栗香蕃薯蔬菜包邮,19.90,40万+,92556
602705834648,陕西洛川红富士苹果水果9斤新鲜应当季脆甜特产丑萍果一整箱5包邮,26.80,40万+,136087
574155114366,南非红心西柚5斤大果新鲜孕妇水果应当季红肉葡萄柚子整箱10包邮,28.80,40万+,34096
582136404401,泰国进口金枕头榴莲新鲜带壳水果当季特产巴掌榴莲整箱2-10斤包邮,72.80,30万+,31463
622468887288,云南石林人参果9斤圆果当季新鲜孕妇水果黄肉人生果整箱大果包邮,19.90,20万+,65977
589527600042,现挖新鲜紫薯9斤沙地番薯农家自种板栗小地瓜香红薯山芋蔬菜包邮,18.80,20万+,66372
590445278989,甘福园新疆哈密瓜9斤新鲜当应季水果脆甜网纹香蜜瓜一整箱包邮,35.80,20万+,54543
587601712823,甘福园新鲜水果小黄瓜5斤荷兰无刺脆嫩小青瓜孕妇蔬菜整箱6包邮,23.80,20万+,61372
625690681709,甘福园墨西哥进口牛油果15个装新鲜当季水果鳄梨整箱应季批发包邮,16.60,20万+,36371
577967951258,山东羊角蜜甜瓜5斤应当季新鲜水果脆蜜瓜小香瓜现摘时令整箱包邮,32.80,20万+,38340
582775780267,云南水果玉米9斤新鲜应当季甜玉米棒子生吃蔬菜粘糯整箱批发包邮,21.80,20万+,9983
622861502829,四川红心猕猴桃当季新鲜孕妇水果奇异果大果正宗弥猴桃整箱包邮10,32.80,20万+,30763
587978325320,海南黄心菠萝蜜新鲜当季水果黄肉波罗蜜三亚特产整箱20-40斤包邮,59.80,20万+,52683
565595726067,攀枝花凯特大青芒9斤芒果新鲜当应季大金煌甜心芒整箱10水果包邮,25.80,20万+,1581
650806763399,福建平和红心柚子9斤红肉蜜柚水果新鲜三红密柚当季琯溪整箱包邮,21.80,20万+,27225
633563451006,大黄米汤圆400g4袋包邮网红速冻花生黑芝麻汤圆手工元宵甜品丸子,33.80,10万+,34726
594837948374,海南青柠檬9斤新鲜应当季水果现摘薄皮香水柠檬奶茶店专用5包邮,15.80,10万+,31287
644799657050,新鲜桃子9斤金秋红蜜桃当季现摘水果毛桃冬桃脆甜水蜜桃整箱包邮,27.80,10万+,24598
640739200676,烟台红富士苹果水果9斤新鲜山东栖霞特产脆甜丑萍果当季带整箱十,20.80,10万+,2502
588989341413,海南青柠檬9斤新鲜应当季水果一级香水柠檬皮薄多汁整批发5包邮,15.80,10万+,9172
640163092399,新鲜桃子9斤金秋红蜜桃当季现摘水果毛桃冬桃脆甜水蜜桃整箱包邮,27.80,10万+,19898
628559917811,【芭芭农场】陕西红富士苹果水果9斤新鲜整箱当季嘎啦平果5包邮,19.80,10万+,29825
632843789858,山东板栗红蜜薯9斤新鲜应当季农家沙地糖心甜番薯地瓜蔬菜5包邮,19.80,9万+,23525
630910066773,云南玉溪丑橘9斤当季新鲜水果早熟桔子不知火丑八怪冰糖蜜橘包邮,22.80,9万+,23509
642603456468,甘福园新疆哈密瓜10斤新鲜当应季水果脆甜网纹香蜜瓜一整箱5包邮,24.80,9万+,10885
653349951133,四川红心猕猴桃15枚当季新鲜孕妇水果弥奇异果正宗狝猴桃整箱批发,14.80,9万+,55
567774839185,甘福园秘鲁进口牛油果10个装新鲜当应季水果鳄梨整箱大批发包邮,18.80,9万+,14350
605873514282,海南香水青柠檬9斤新鲜应当季水果鲜柠檬皮薄多汁一整箱批发包邮,26.80,9万+,10288
600284637252,河北黑糯玉米8根新鲜紫黏玉米棒子即食甜粘嫩苞米粒真空蔬菜包邮,29.80,9万+,24062
588027323663,新鲜甜玉米笋9斤小玉米芯仔蔬菜迷你嫩玉米棒水果玉米批发5包邮,22.80,8万+,15541
607542254594,广西紫皮百香果9斤装新鲜应当季水果特大鸡蛋果酱整箱一级5包邮,19.90,8万+,20157
591751435523,新鲜圣女果5斤水果自然熟西红柿子千禧果生吃小番茄蔬菜整箱包邮,22.80,8万+,21222
638701124662,云南高山甜香蕉9斤装当季新鲜水果banana芭蕉现货批发整箱10包邮,22.80,8万+,19780
619602918507,美国进口青苹果10个新鲜孕妇水果应季酸甜青蛇果富士整箱萍果包邮,69.80,8万+,20934
650289298377,四川红心猕猴桃当季新鲜孕妇水果奇异果正宗狝弥猴桃大果整箱包邮,19.90,8万+,16601
622447243140,泰国进口龙眼5斤新鲜当季水果桂圆非石硖特级龙眼10整箱顺丰包邮,34.80,8万+,18614
609987486293,广西五彩泡椒灯笼椒七彩小米辣珍珠野山椒腌酱油泡酸辣椒特产蔬菜,10.80,7万+,11278
TopSort
# -*- coding: utf-8 -*-
# @Time : 2021/10/8 9:51
# @Author : Leviathan_Sei
# @File : csvFindSort.py
# @Python : 3.7
from pyspark import SparkConf, SparkContext
conf = SparkConf().setAppName("TopSort").setMaster("local")
sc = SparkContext(conf=conf)
sc.setLogLevel("ERROR")
csvData = sc.textFile("../data/csvData")
comments = csvData.map(lambda line: (int(line.split(',')[4]), line.split(',')[0]))
sortedData = comments.sortByKey(False)
ans = sortedData.map(lambda x: (x[1], x[0]))
out = ans.collect()
for (k, v) in out:
print(k, v)
sc.stop()
E:\Anaconda\envs\PySpark\python.exe D:/codes/python/PySpark/src/csvFindSort.py
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
21/10/08 18:01:13 WARN Utils: Service 'SparkUI' could not bind on port 4040. Attempting port 4041.
E:\BigData\spark-2.4.3-bin-hadoop2.7\python\lib\pyspark.zip\pyspark\shuffle.py:60: UserWarning: Please install psutil to have better support with spilling
575419495977 303260
566532273700 222785
607304225852 148517
602705834648 136087
592810219412 119375
564979075325 118881
577845932781 104894
572643713345 94165
566708275445 92556
565422430890 92060
571887415575 86220
580294338176 84937
627556724842 79651
589527600042 66372
622468887288 65977
577625541963 63320
587601712823 61372
590445278989 54543
596645678584 54253
587978325320 52683
577967951258 38340
625690681709 36371
633563451006 34726
574155114366 34096
582136404401 31463
594837948374 31287
622861502829 30763
628559917811 29825
650806763399 27225
644799657050 24598
600284637252 24062
632843789858 23525
630910066773 23509
591751435523 21222
619602918507 20934
607542254594 20157
640163092399 19898
638701124662 19780
622447243140 18614
650289298377 16601
588027323663 15541
567774839185 14350
609987486293 11278
642603456468 10885
605873514282 10288
582775780267 9983
588989341413 9172
640739200676 2502
565595726067 1581
653349951133 55
需要做的事还有很多