gpt4 book ai didi

python - 从 Pandas 数据框转换为 LabeledPoint RDD

转载 作者:太空宇宙 更新时间:2023-11-04 10:02:10 25 4
gpt4 key购买 nike

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

我在使用 pandas、numpy 和 scikit-learn 时效果很好,但在转向 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 时,我一直收到 IndexError: list index out of range

当我实际下载文件并更改代码如下时,我才设法让它工作:

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_csv 直接从 pandas dataframes 获取数据?

最佳答案

我建议您先将 Pandas DataFrame 转换为 Spark DataFrame。您可以使用 sqlContext.createDataFrame方法。

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)

现在您可以使用此 Dataframe 来获取您的训练数据集。

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

关于python - 从 Pandas 数据框转换为 LabeledPoint RDD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42949194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com