如何使用 Conda Python 在本地机器上安装和使用 mmlspark?

How to install and use mmlspark on a local machine with Conda Python?

如何在装有 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 不工作。有人可以帮助解决这个问题吗?

你的问题没有正确描述问题,但如果你正在寻找安装命令。那么请看下面,

先安装pyspark。

pip install pyspark

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

脚本操作 url 是:https://mmlspark.azureedge.net/buildartifacts/0.13/install-mmlspark.sh.

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

提交,集群应该会在10分钟左右完成配置。

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

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

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

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 版本,你应该检查你安装的是哪个版本。

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