MMLSpark+Spark:pyspark+lightGBM应用实践

MMLSpark ,即 Microsoft Machine Learning for Apache Spark ,是微软开源的一个针对 Apache Spark 的深度学习和数据可视化的库。作为专门为大规模数据处理而设计的快速通用计算引擎,Apache Spark 为用户提供了创建可扩展 ML 的有力平台。新发布的 MMLSpark 能够将诸如深度学习等前沿机器学习技术应用于更大的数据集,并为用户提供能够应对诸如文本、分类数据等多种类型数据的 API , 大大提高数据分析师使用 Apache Spark 的工作效率及实验速度。

 简书链接

lightGBM官网上提示用它可以在Spark上运行lightGBM模型。下面记录一个我的实践过程。

首要条件(环境):scala2.11+spark2.4.0+python3.7。我是pyspark在jupyter上进行实验的。

1.配置好python的pyspark,注意直接安装可能会和spark2.4.0里面的pyspark版本不一致,建议直接将spark里的:

 拷贝进pip的site-package里。同时还需要安装py4j。

2.启动pyspark,尝试过官网的安装mml的方法,没有一个安装成功的,各种问题报错。于是我尝试用pip install mmlspark,发现会安装到一个旧版本的mml,启动pyspark,import mmlspark很多方法都用不了。但是可以在这个地方下载到jar包:然后执行下面的操作,解压jar包把里面的mmlspark文件夹替换至pip site-package里面的mmlspark。替换后即可正常工作。

mmlspark:https://repo1.maven.org/maven2/com/microsoft/ml/spark/mmlspark_2.11/

lightgbmlib:https://repo1.maven.org/maven2/com/microsoft/ml/lightgbm/lightgbmlib/

3.根据官方的实例代码进行测试。示例、数据集可以去kaggle找,因为链接可能连不上去。

能成功运行就代表可以在spark上跑LightGBM了。 

但是注意,应该是要用spark dataframe。通过在pyspark里编写代码运行即可。也可以使用spark-submit来提交py文件到分布式集群里进行运行。

如果是在集群上,同样的方法即可。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: CarbonData是一种基于列式存储的分布式数据存储和处理引擎,可以与Spark SQL集成,提供高效的数据查询和分析能力。在实际应用中,我们可以通过以下几个方面来进行CarbonData+Spark SQL的应用实践和调优: 1. 数据预处理:在使用CarbonData+Spark SQL进行数据查询和分析之前,需要对数据进行预处理,包括数据清洗、数据转换、数据归一化等操作,以确保数据的质量和一致性。 2. 数据分区:在使用CarbonData+Spark SQL进行数据查询和分析时,可以通过对数据进行分区,将数据划分为多个小块,以提高查询和分析的效率。 3. 数据压缩:在使用CarbonData+Spark SQL进行数据查询和分析时,可以通过对数据进行压缩,减少数据的存储空间,提高查询和分析的效率。 4. 数据索引:在使用CarbonData+Spark SQL进行数据查询和分析时,可以通过对数据建立索引,提高查询和分析的效率。 5. 查询优化:在使用CarbonData+Spark SQL进行数据查询和分析时,可以通过对查询语句进行优化,包括选择合适的查询方式、使用合适的查询条件、避免全表扫描等操作,以提高查询和分析的效率。 总之,CarbonData+Spark SQL的应用实践和调优需要综合考虑数据预处理、数据分区、数据压缩、数据索引和查询优化等方面,以提高查询和分析的效率和准确性。 ### 回答2: CarbonData是阿里巴巴开发的一种高性能、低延迟、易操作、可扩展的分布式列存储系统,专门为大规模数据仓库场景设计。CarbonData已经实现了针对Spark SQL的数据源API,它与Spark配合使用能够提升Spark SQL查询性能并支持复杂查询。 一些CarbonData Spark SQL的应用实践: 1. 数据集成:CarbonData支持各种数据集成方式,包括基于SQL的ETL工具、实时流数据和其他大数据存储系统。 2. 数据清洗:CarbonData支持基于SQL的数据清洗,用户能够通过SQL操作数据并将其推送到CarbonData中。 3. 数据查询:CarbonData与Spark的集成是无缝的,使用Spark SQL查询CarbonData的数据能够提高查询性能和灵活性。 4. 数据分析:CarbonData支持对数据建立索引、查询数据快速分析、插入新的数据集等等。 一些CarbonData Spark SQL的调优建议: 1. 利用Spark SQL优化引擎:Spark SQL优化引擎可以自动调整查询执行计划,并提高查询性能。 2. 使用CarbonData索引:CarbonData支持在列存储的基础上构建索引,用户可以通过索引搜索特定的数据块,从而提高查询速度。 3. 选择合适的数据切片方式:CarbonData使用多维数据切片方式,能够提高查询速度,但选择合适的切片方式需要考虑数据的特点。 4. 数据压缩:CarbonData支持对数据进行压缩,可以降低存储的空间和I/O操作量,从而提高查询速度。 总之,CarbonData与Spark SQL的无缝集成为数据仓库的实时分析提供了一个高性能、低延迟、易操作、可扩展的解决方案。在具体的应用和调优过程中,用户需要根据具体情况合理选择数据集成和分析方法,并结合Spark SQL引擎进行优化。 ### 回答3: CarbonData是由Apache Software Foundation开源的OLAP(联机分析处理)数据引擎,支持在Hadoop和Spark上进行批量数据处理和实时数据查询。在Spark SQL中使用CarbonData可以享受到快速查询和高可靠性等特点,下面是CarbonData在Spark SQL中的一些应用实践和调优经验。 一、应用实践 1. 数据存储方式选择:CarbonData支持多维数组和列式存储等多种存储模式,对于复杂查询应该选择多维数组存储模式,而对于单表和单列查询应该选择列式存储模式。 2. 数据切分设置:CarbonData使用数据切分技术来支持多机并行处理数据,因此需要根据数据量大小、计算任务类型和机器配置等因素来进行数据切分设置,以充分利用机器资源和保证任务负载均衡。 3. 索引设置和使用:CarbonData支持多种索引类型,如字典索引、倒排索引等,可以根据查询场景进行索引设置,并使用优化器来选择最佳索引查询路径。 4. 数据压缩和字典优化:CarbonData支持LZO、SNAPPY和GZIP等多种数据压缩方式,可以根据存储容量和查询速度的平衡度进行选择,而字典优化则可以针对频繁查询的维度进行缓存和预加载,以加速查询速度。 二、调优经验 1. 内存设置:CarbonData使用内存池来管理内存,需要根据计算任务的数据量大小、机器内存容量和计算任务类型等因素来进行内存设置,以保证任务运行稳定和高效。 2. CPU设置:CarbonData的计算任务大量使用CPU资源,需要根据机器CPU数量、计算任务类型和机器配置等因素来进行CPU设置和调度,以保证任务运行效率和负载均衡。 3. IO设置:CarbonData使用本地磁盘和网络磁盘等多种IO方式,可以根据机器磁盘容量和计算任务类型等因素来进行IO设置和优化,以保证任务运行效率和数据传输速度。 4. 并行度设置:CarbonData大量使用多线程和多进程并行计算,需要根据计算任务类型、机器配置和数据量等因素来设置并行度,以保证任务负载均衡和高效执行。 综上所述,CarbonData在Spark SQL中的应用实践和调优相对复杂,需要根据具体的业务场景和数据特征来进行设置和优化,以实现快速查询和高可靠性等特点。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值