Qubole 中宽数据的 PySpark 机器学习

Posted

技术标签:

【中文标题】Qubole 中宽数据的 PySpark 机器学习【英文标题】:PySpark Machine Learning on Wide Data in Qubole 【发布时间】:2020-01-02 18:33:48 【问题描述】:

我有一个包含大约 250 个特征的大型数据集,我想在梯度增强树分类器中使用它。我有数百万个观察值,但我无法让模型处理我的数据的 1%(约 30 万个观察值)。下面是我的代码的 sn-p。我无法为您分享任何数据,但所有特征都是数字的(数字变量或各种因子水平的虚拟变量)。我使用VectorAssembler 创建了一个features 变量,其中包含来自相应观察的特征向量。

当我将模型使用的特征数量减少到 5 个时,模型运行没有问题。只有当我通过添加大量功能使问题变得更复杂时,它才会开始失败。我得到的错误是TTransport Exception。该模型将尝试运行数小时,然后才会出错。我正在使用 Qubole 构建我的模型。我是 Qubole 和 PySpark 的新手,所以我不确定我的问题是 spark 内存问题还是 Qubole 内存(我的集群有 4+ TB,数据只有几 GB)等等。

任何有关测试/调试的想法或想法都会有所帮助。谢谢。

train = train.withColumnRenamed(target, "label")
test = test.withColumnRenamed(target, "label")

evaluator = BinaryClassificationEvaluator()
gbt = GBTClassifier(maxIter=10)
gbtModel = gbt.fit(train)
gbtPredictions = gbtModel.transform(test)
gbtPredictions.select('label','rawPrediction', 'prediction', 'probability').show(10)

print("Test Area Under ROC: " + str(evaluator.evaluate(gbtPredictions, evaluator.metricName: "areaUnderROC")))

【问题讨论】:

【参考方案1】:

你会想试试这个https://docs.qubole.com/en/latest/troubleshooting-guide/notebook-ts/troubleshoot-notebook.html#ttexception。如果这仍然没有帮助,请随时为我们创建支持票,我们很乐意进行调查。

【讨论】:

感谢您的宝贵时间!我查看了这个并调整了一些参数,例如增加spark.driver.memory,但仍然无法解决这个问题。 @ErrorJordan 您能否为我们创建一个有问题的 notebook-id 支持票?我们很乐意进一步调查。 Pradeep - 通过 Qubole 的票?

以上是关于Qubole 中宽数据的 PySpark 机器学习的主要内容,如果未能解决你的问题,请参考以下文章

Pyspark:在机器学习算法中使用数据框

PySpark ML——分布式机器学习库

PySpark数据分析基础:pyspark.mllib.regression机器学习回归核心类详解+代码详解

PySpark数据分析基础:pyspark.mllib.regression机器学习回归核心类详解+代码详解

机器学习 - 开发环境安装pycharm + pyspark + spark集成篇

排除 Qubole 中具有特定值的记录