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文件到分布式集群里进行运行。
如果是在集群上,同样的方法即可。
网友评论