使用Pypark.ml公司基于s3-bu数据的AWS电子病历

2024-06-11 17:49:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在训练一个机器学习模型Pypark.ml公司JupyterLab笔记本中AWS EMR上s3 bucket的on.json数据。这个bucket不是我的,但是我认为access工作得很好,因为数据预处理、特征工程等工作得很好。但是,当我调用cv.fit(training_data)函数时,训练过程会一直运行到几乎完成(由状态栏指示),但随后会抛出一个错误:

Exception in thread cell_monitor-64:
Traceback (most recent call last):
  File "/opt/conda/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()
  File "/opt/conda/lib/python3.7/threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "/opt/conda/lib/python3.7/site-packages/awseditorssparkmonitoringwidget-1.0-py3.7.egg/awseditorssparkmonitoringwidget/cellmonitor.py", line 178, in cell_monitor
    job_binned_stages[job_id][stage_id] = all_stages[stage_id]
KeyError: 6571

我还没有找到关于这个错误的任何信息。怎么回事?你知道吗

这是我的管道:

train, test = clean_df.randomSplit([0.8, 0.2], seed=42)

va1 = VectorAssembler(inputCols="vars", outputCol="vars")

scaler = StandardScaler(inputCol="to_scale", outputCol="scaled_features")

va2 = VectorAssembler(inputCols=["more_vars","scaled_features"], outputCol="features")

gbt = GBTClassifier()   

pipeline = Pipeline(stages=[va1, scaler,va2,gbt])

paramGrid = ParamGridBuilder()\
    .addGrid(gbt.maxDepth, [2, 5])\
    .addGrid(gbt.maxIter, [10, 100])\
    .build() 

crossval = CrossValidator(estimator=pipeline,
                          estimatorParamMaps=paramGrid,
                          evaluator=MulticlassClassificationEvaluator(metricName='f1'),
                          numFolds=3)

cvModel = crossval.fit(train)

其次,我有一个预感,我可能在python3.8中解决了这个问题;我可以在EMR上安装python3.8吗?你知道吗


Tags: inpyselfidliblinevarsconda