【发布时间】:2019-04-10 03:51:36
【问题描述】:
我想使用 pyspark 执行 k 折交叉验证来微调参数,我正在使用 pyspark.ml。 我收到属性错误。
AttributeError: 'DataFrame' 对象没有属性 '_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 中
【问题讨论】:
-
您需要将 pandas 数据帧转换为 spark 数据帧
-
我会尝试这样做。谢谢
-
如果它对某人有帮助。如果您在加载后将 DataFrame 转换为 pandas 以进行显示,也可能会引发此错误。例如,通过使用
df.limit(5).toPandas()。
标签: pyspark