【发布时间】:2017-03-22 10:39:32
【问题描述】:
我正在一个非常简单的数据集上运行一些测试,该数据集基本上由数字数据组成。 可以找到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 数据帧中获取数据?
【问题讨论】:
标签: python pandas apache-spark pyspark apache-spark-mllib