spark分布式运行xgboost

spark分布式运行xgboost

  • 数据集如下所示
    在这里插入图片描述
  • 程序完整代码
# coding=UTF-8
import os
os.environ['PYSPARK_SUBMIT_ARGS'] = '--jars /data/pycharm/zhanglong/pysparkxgboostnew/xgboost4j-spark-0.90.jar,/data/pycharm/zhanglong/pysparkxgboostnew/xgboost4j-0.90.jar pyspark-shell'

from pyspark.sql import SparkSession, SQLContext
from pyspark import SparkConf, SparkContext

# conf = SparkConf().setMaster("local").setAppName("My App")
conf = SparkConf().setMaster("yarn").setAppName("pyspark_xgboost_yarn")
sc = SparkContext(conf=conf)
spark = SparkSession.builder.appName('CalculatingGeoDistances').getOrCreate()
sqlContext = SQLContext(sparkContext=sc)

from pyspark.sql.types import *
from pyspark.ml.feature import StringIndexer, VectorAssembler
from pyspark.ml import Pipeline

# spark.sparkContext.addPyFile("hdfs:///tmp/rd/lp/sparkxgb.zip")

schema = StructType(
    [StructField("PassengerId", DoubleType()),
     StructField("Survived", DoubleType()),
     StructField("Pclass", DoubleType()),
     StructField("Name", StringType()),
     StructField("Sex", StringType()),
     StructField("Age", DoubleType()),
     StructField("SibSp", DoubleType()),
     StructField("Parch", DoubleType()),
     StructField("Ticket", StringType()),
     StructField("Fare", DoubleType()),
     StructField("Cabin", StringType()),
     StructField("Embarked", StringType())
     ])

df_raw = spark \
    .read \
    .option("header", "true") \
    .schema(schema) \
    .csv("train.csv")

df_raw.show(20)
df = df_raw.na.fill(0)

vectorAssembler = VectorAssembler() \
    .setInputCols(["Pclass", "Age", "SibSp", "Parch", "Fare"]) \
    .setOutputCol("features")

from sparkxgb import XGBoostClassifier

xgboost = XGBoostClassifier(
    featuresCol="features",
    labelCol="Survived",
    predictionCol="prediction",
    missing=0.0
)
pipeline = Pipeline(stages=[vectorAssembler, xgboost])
# randomSplit 随机分为测试集合训练集
trainDF, testDF = df.randomSplit([0.8, 0.2], seed=24)
trainDF.show(2)
print("************************开始训练****************************")
# 拟合模型
model = pipeline.fit(trainDF)

print("************************训练结束****************************")
print("************************开始预测****************************")

model.transform(testDF).select("PassengerId", "Survived", "prediction").show()

print("************************预测结束*****************************")
# 输出的所有结果
model.transform(testDF).show()
print("程序結束")

在这里插入图片描述

  • 遇到的问题

1.上面两个jar包必须放到spark-submit提交参数里面。os.environ['PYSPARK_SUBMIT_ARGS'] = '--jars /data/pycharm/zhanglong/pysparkxgboostnew/xgboost4j-spark-0.90.jar,/data/pycharm/zhanglong/pysparkxgboostnew/xgboost4j-0.90.jar pyspark-shell

2.将sparkxgb.zip 解压到python3 的包的安装目录里面,linux里面默认安装路径如下/usr/local/python3/lib/python3.6/site-packages

3.如果不想将sparkxgb.zip解压到python包的安装目录,不想把jar包放到Python代码里面可以。那么就可以使用spark shell首先要注释:
os.environ['PYSPARK_SUBMIT_ARGS'] = '--jars /data/pycharm/zhanglong/pysparkxgboostnew/xgboost4j-spark-0.90.jar,/data/pycharm/zhanglong/pysparkxgboostnew/xgboost4j-0.90.jar pyspark-shell

然后在linux里面运行如下spark shell命令:

spark-submit --master yarn --py-files /data/pycharm/zhanglong/pysparkxgboostnew/sparkxgb.zip --jars /data/pycharm/zhanglon/pycharm/zhanglong/pysparkxgboostnew/xgboost4j-0.90.jar,/data/pycharm/zhanglong/pysparkxgboostnew/xgboost4j-spark-0.90.jar /data/pycharm/zhanglong/pysparkxgboostnew/test.py

zip包和jar包需要指定到具体的位置。

4.spark 默认读取的csv文件在hdfs的 /user/root/ 目录下,运行前需要提前将train.csv文件上传到该目录下面。

如需sparkxgb.zip包和两个jar包和训练集可以Q:2316352792

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
手把手视频详细讲解项目开发全过程,需要的小伙伴自行百度网盘下载,链接见附件,永久有效。 课程简介 知识点介绍、代码演示、逻辑分析、灵活举例、使用图形的方式详细演示代码的流程和细节、整合企业级实战案例,全面讲解并突出重点,让学习也变成一种快乐。 课程亮点 1,知识体系完备,阶段学习者都能学有所获。 2,综合各种方式演示代码、分析逻辑,生动形象,化繁为简,讲解通俗易懂。 3,结合工作实践及分析应用,培养解决实际问题的能力。 4,使用综合案例来加强重点知识,用切实的应用场景提升编程能力,充分巩固各个知识点的应用。 5,整个课程的讲解思路是先提出问题,然后分析问题,并编程解决解题。 适用人群 1、对大数据感兴趣的在校生及应届毕业生。 2、对目前职业有进一步提升要求,希望从事大数据行业高薪工作的在职人员。 3、对大数据行业感兴趣的相关人员。 课程内容 第一章、Spark 基础环境 1.课程安排说明 2.Spark 框架概述 3.快速入门 4.Standalone集群及HA 5.Spark 应用开发入门 6.Spark 应用提交 7.Spark on YARN 8.应用部署模式DeployMode 第二章、SparkCore 模块 1.RDD 概念及特性 2.RDD 创建 3.RDD 函数及使用 4.RDD 持久化 5.案例:SogouQ日志分析 6.RDD Checkpoint 7.外部数据源(HBase和MySQL) 8.广播变量和累加器 9.Spark 内核调度 10.Spark 并行度 第三章、SparkSQL 模块 1.快速入门:词频统计 2.SparkSQL 概述 3.DataFrame 4.RDD与DataFrame转换 5.数据分析SQL和DSL 6.案例:电影评分数据分析 7.DataSet 8.外部数据源Exeternal DataSource 9.集成Hive 10.自定义函数UDF 11.分布式SQL引擎(spakr-sql和Spark ThriftServer) 12.Catalyst 优化器 第四章、离线综合实战 1.综合实战概述(需求、调研、业务) 2.环境搭建(大数据环境和应用开发环境) 3.项目初始化(工具类和属性文件) 4.广告数据ETL 5.Spark 分布式缓存 6.业务报表分析 7.应用执行部署 8.Oozie和Hue集成调度Spark 应用 第五章、SparkStreaming 模块 1.Streaming流式应用概述 2.Streaming 计算模式 3.SparkStreaming计算思路 4.入门案例 5.SparkStreaming工作原理 6.DStream及函数 7.集成Kafka 8.案例:百度搜索风云榜(实时ELT、窗口Window和状态State) 9.SparkStreaming Checkpoint 10.消费Kafka偏移量管理 第六章、StructuredStreaming模块 1.StructuredStreaming 概述(核心设计和编程模型) 2.入门案例:WordCount 3.输入源InputSources 4.Streaming Query 设置 5.输出终端OutputSink 6.集成Kafka(Source和Sink) 7.案例:物联网设备数据分析 8.事件时间窗口分析 9.Streaming Deduplication数据去重 10.Continues Processing连续流处理 第七章、实时综合实战 1.综合实战概述(需求、环境搭建和项目初始化) 2.模拟交易订单数据 3.数据实时ETL存储Kafka 4.实时应用停止 5.实时增量存储(存储HBase和Elasticsearch) 6.实时订单报表(Kafka-StructuredStreaming-Redis) 7.实时应用性能调优(数据本地性、反压机制、动态资源和日志管理)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值