如何通过Conda Python在本地计算机上安装和使用mmlspark?

时间:2018-07-10 19:27:47

标签: python pyspark conda azure-machine-learning-studio

如何在具有Intel Python 3.6的本地计算机上安装和使用 MMLSpark

import numpy as np
import pandas as pd
import pyspark
spark = pyspark.sql.SparkSession.builder.appName("MyApp") \
            .config("spark.jars.packages", "Azure:mmlspark:0.13") \
            .getOrCreate()

import mmlspark
from mmlspark import TrainClassifier
from pyspark.ml.classification import LogisticRegression
from mmlspark import ComputeModelStatistics, TrainedClassifierModel


dataFilePath = "AdultCensusIncome.csv"
import os, urllib
if not os.path.isfile(dataFilePath):
    urllib.request.urlretrieve("https://mmlspark.azureedge.net/datasets/" + dataFilePath, dataFilePath)
data = spark.createDataFrame(pd.read_csv(dataFilePath, dtype={" hours-per-week": np.float64}))
data = data.select([" education", " marital-status", " hours-per-week", " income"])
train, test = data.randomSplit([0.75, 0.25], seed=123)
train.limit(10).toPandas()

model = TrainClassifier(model=LogisticRegression(), labelCol=" income", numFeatures=256).fit(train)
prediction = model.transform(test)
metrics = ComputeModelStatistics().transform(prediction)
metrics.limit(10).toPandas()

MMLSpark不起作用。有人可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

您的问题不能正确描述问题,但是如果您正在寻找安装命令。然后请参见下文

首先安装pyspark。

pip install pyspark

要在现有的HDInsight Spark群集上安装MMLSpark,可以在群集头节点和工作节点上执行脚本操作。有关运行脚本操作的说明,请参阅本指南。

脚本操作网址为:https://mmlspark.azureedge.net/buildartifacts/0.13/install-mmlspark.sh.

如果您使用Azure门户运行脚本操作,请在群集刀片的“概述”部分中转到“脚本操作”→“提交新内容”。在Bash脚本URI字段中,输入上面提供的脚本操作URL。标记其余选项,如右侧屏幕截图所示。

提交,群集应在10分钟左右的时间内完成配置。

来自原始文档:- https://github.com/Azure/mmlspark

答案 1 :(得分:0)

尽管这是一个老问题(顺便说一句,这个问题很不恰当),但仍有一些人可能会从中受益。

为了使本地 Spark 环境与 mmlspark 一起工作,您必须设置环境变量 PYSPARK_SUBMIT_ARGS。由于我正在使用 Jupyter,我发现通过脚本 ~/.jupyter/jupyter-env.sh(或 /etc/profile.d/jupyter-env.sh,如果您在 AWS EC2 实例中)设置环境变量很有用。 env 变量本身应该是:

PYSPARK_SUBMIT_ARGS='--packages com.microsoft.ml.spark:mmlspark_2.11:1.0.0-rc3,org.apache.spark:spark-avro_2.12:2.4.5 --repositories https://mmlspark.azureedge.net/maven pyspark-shell'

请注意,我们还必须将 org.apache.spark:spark-avro_2.12:2.4.5 冻结到适用于 mmlspark 的版本。随意与他人一起测试。

对我有用的完整 jupyter-env.sh 脚本是:

export SPARK_HOME=/home/ec2-user/SageMaker/spark
export PATH=$SPARK_HOME/bin:$PATH
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
export PYSPARK_SUBMIT_ARGS='--packages org.apache.hadoop:hadoop-aws:3.2.2,com.microsoft.ml.spark:mmlspark_2.11:1.0.0-rc3,org.apache.spark:spark-avro_2.12:2.4.5 --repositories https://mmlspark.azureedge.net/maven pyspark-shell'

很明显,您必须更改 SPARK_HOME(第 1 行)以指向您的 spark 目录所在的位置。另外请注意,我选择在 PYSPARK_SUBMIT_ARGS 中设置我的 hadoop 版本,您应该检查您安装的是哪个版本。

我希望它可以帮助其他人,因为我花了一段时间才弄明白。 干杯