Pyspark 错误:AttributeError:&x27;数据帧';对象没有属性'_jdf&x27;

Pyspark 错误:AttributeError:&x27;数据帧';对象没有属性'_jdf&x27;,pyspark,Pyspark,我想使用pyspark执行k-fold交叉验证来微调参数,我使用的是pyspark.ml。 我得到属性错误 AttributeError:“DataFrame”对象没有属性“\u jdf” 我最初尝试使用pyspark.mllib,但未能成功执行k折叠交叉验证 import pandas as pd from pyspark import SparkConf, SparkContext from pyspark.ml.classification import DecisionTreeClass

我想使用pyspark执行k-fold交叉验证来微调参数,我使用的是pyspark.ml。 我得到属性错误

AttributeError:“DataFrame”对象没有属性“\u jdf”

我最初尝试使用pyspark.mllib,但未能成功执行k折叠交叉验证

import pandas as pd
from pyspark import SparkConf, SparkContext
from pyspark.ml.classification import DecisionTreeClassifier

data=pd.read_csv("file:///SparkCourse/wdbc.csv", header=None)
type(data)
print(data)

conf = SparkConf().setMaster("local").setAppName("SparkDecisionTree")
sc = SparkContext(conf = conf)

# Create initial Decision Tree Model
dt = DecisionTreeClassifier(labelCol="label", featuresCol="features", 
maxDepth=3)

# Train model with Training Data
dtModel = dt.fit(data)

# I expect the model to be trained but I'm getting the following error 
AttributeError: 'DataFrame' object has no attribute '_jdf'

注意:我可以打印数据。dtModel中出错

将Panadas转换为Spark

from pyspark.sql import SQLContext
sc = SparkContext.getOrCreate()
sqlContext = SQLContext(sc)

spark_dff = sqlContext.createDataFrame(panada_df)

如果度量评估错误,您可能会:

  • 正确使用测试集上的Spark进行转换,然后使用DF进行窥视
  • #火花模型,转换测试,转换为df
    预测=模型转换(测试)
    predDF=predictions.toPandas()
    predDF.head()
    
  • 然后尝试:
  • 我忘了predDF是熊猫数据帧。
    需要预测,因为这是一个火花数据帧。

    acc = eval_acc.evaluate(predictions) # Works
    print(f"accuracy: {acc}")
    

    您需要将pandas数据框转换为spark数据框。我将尝试这样做。非常感谢。
    acc = eval_acc.evaluate(predictions) # Works
    print(f"accuracy: {acc}")