赞
踩
综合运用大数据分析生态中的相关组件,完成具有移动综合性的大数据分析任务,了解大数据分析的基本流程。
三、实验内容
数据集中有test.csv和train.csv两个文件。本次实验使用Spark的机器学习库进行简单的分类操作,并将测试结果存入MySQL数据库中。如下图所示,本实验内容涉及了数据预处理、数据分析以及大数据分析系统与数据库之间的联动。
这里先列出test.csv和train.csv中字段的描述,字段定义如下:
四、实验步骤
使用以下命令安装MySQL:
sudo apt-get update
sudo apt-get install mysql-server -y
然后使用mysql --version查看版本
service mysql start
mysql -u root -p
create database dbtaobao;
use dbtaobao;
create table rebuy (score varchar(40),label varchar(40));
select * from rebuy
quit;
- from pyspark.ml.classification import LinearSVC
- from pyspark.ml.linalg import Vectors
- from pyspark.sql import SparkSession,Row
- from pyspark.ml.evaluation import MulticlassClassificationEvaluator
- def splitDF(x):
- rel={}
- rel['features']=Vectors.dense(int(x[0]),int(x[1]),int(x[2]),int(x[3]))
- rel['label']=int(x[4])
- return rel
- spark=SparkSession.builder.master("local").appName("double11").getOrCreate()
-
- training = spark.sparkContext.textFile("hdfs://localhost:9000dbtaobao/dataset/train_after.csv").map(lambda line:line.split(',')).map(lambda p:Row(**splitDF(p))).toDF()
- testing = spark.sparkContext.textFile("hdfs://localhost:9000dbtaobao/dataset/test_after.csv").map(lambda line:line.split(',')).map(lambda p:Row(**splitDF(p))).toDF()
-
- dsvc = LinearSVC(maxIter=10, regParam=0.1).setFeaturesCol("label").setFeaturesCol('features')
-
- dsvcModel = dsvc.fit(training)
- dsvcPredictions=dsvcModel.transform(testing)
-
- preRel=dsvcPredictions.select("prediction","label","features").collect()
- for item in preRel:
- print(str(item['label'])+','+str(item['features'])+',prediction'+str(item['prediction']))
- #准确率
- evaluator=MulticlassClassificationEvaluator().setLabelCol("label").setPredictionCol("prediction")
- dAccuracy=evaluator.evaluate(dsvcPredictions)
- print(dAccuracy)

四、实验可能会出现的问题
1.python版本选取问题:
python2和python3.10以上的版本不推荐选择,目前最合适的Python版本推荐3.6,性能比较稳定。
2.numpy安装问题:
在安装numpy中遇到了无法安装的问题,可以考虑5G网络或者提前下载镜像源解压。
3.在启动pyspark时,遇到了问题:
./bin/pyspark: line 45: python: command not found
env: ‘python’: No such file or directory
在命令行输入Python不存在,输入Python3进入Python,因此需要配置Spark python的环境变量,在~/.bashrc文件中添加:
export PYTHONPATH = $SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.10-src.zip:$PYTHONPATH export PYSPARK_PYTHON=python3 |
然后source ~/.bashrc,再次启动pyspark就可以进入pyspark。
4.最后一行代码报错:
rebuyDF.write.jdbc("jdbc:mysql://localhost:3306/dbtaobao",'dbtaobao.rebuy','append', prop) java.lang.ClassNotFoundException: com.mysql.jdbc.Driver |
说明缺少mysql-connector-java-5.1.40-bin.jar包,但是之前明明已经解压到/usr/local/spark/jars中,这时才发现解压后是一个mysql-connector-java-5.1.40目录,mysql-connector-java-5.1.40-bin.jar在这个目录里面,将这个jar包复制到/usr/local/spark/jars中即可。
5.部分用户可能会出现内存硬盘容量不够扩容后的问题,例如
dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem. |
针对该类问题,需要重新进行系统初始化。
update source list, sudo gedit /etc/apt/sources.list sudo apt-get update |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。