Python 从数据帧转换为标签点RDD

Python 从数据帧转换为标签点RDD,python,pandas,apache-spark,pyspark,apache-spark-mllib,Python,Pandas,Apache Spark,Pyspark,Apache Spark Mllib,我正在一个非常简单的数据集上运行一些测试,该数据集基本上由数字数据组成。 可以找到它 我与pandas、numpy和scikit一起工作,学习很好,但当我转到Spark时,我无法以正确的格式设置数据,将其输入决策树 我做的这件事不管用: df = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/poker/poker-hand-training-true.data') raw_data = sc.par

我正在一个非常简单的数据集上运行一些测试,该数据集基本上由数字数据组成。 可以找到它

我与pandas、numpy和scikit一起工作,学习很好,但当我转到Spark时,我无法以正确的格式设置数据,将其输入决策树

我做的这件事不管用:

df = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/poker/poker-hand-training-true.data')

raw_data = sc.parallelize(df)

train_dataset = raw_data.map(lambda line: line.split(","))\
                            .map(lambda line:LabeledPoint(line[10], np.array([float(x) for x in line[0:10]])))
在map函数中尝试访问
line
时,我不断得到
索引器:列表索引超出范围

我只是在实际下载文件并按如下方式更改代码时才设法使其工作:

raw_data = sc.textFile('.../datasets/poker-hand-training.data')

train_dataset = raw_data.map(lambda line: line.split(","))\
                            .map(lambda line:LabeledPoint(line[10], np.array([float(x) for x in line[0:10]])))

如果我不想下载数据集,是否可以使用
read\u csv
直接从熊猫数据帧准备好数据?

我建议您首先将
熊猫数据帧
转换为
Spark数据帧
。您可以使用方法来实现这一点

df = pd.read_csv('http://archive.ics.uci.edu/ml/machine-learning-databases/poker/poker-hand-training-true.data', names=['S1','C1','S2','C2','S3','C3','S4','C4','S5','C5','class'])
s_df = spark.createDataFrame(df)
现在,您可以使用此数据帧获取培训数据集

train_dataset  = s_df.rdd.map(lambda x: LabeledPoint(x[10], x[:10])).collect()

最好的一个班轮转换!