Новый Спарк, и все примеры, которые я прочитал дело с небольшими наборами данных, таких как:PySpark: Многие функции меченого Точка RDD
RDD = sc.parallelize([
LabeledPoint(1, [1.0, 2.0, 3.0]),
LabeledPoint(2, [3.0, 4.0, 5.0]),
Однако, у меня есть большой набор данных с 50+ функциями.
Пример строки
u'2596,51,3,258,0,510,221,232,148,6279,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,5'
Я хочу, чтобы быстро создать Labeledpoint RDD в PySpark. Я пытаюсь проиндексировать последнюю позицию в качестве моей первой точки данных в RDD Labeledpoint, а затем индексировать первые n-1 положения как плотный вектор. Однако я получаю следующую ошибку. Любое руководство ценится! Примечание: если я изменяю [] на() при создании помеченной точки, я получаю сообщение об ошибке «Недопустимый синтаксис».
df = myDataRDD.map(lambda line: line.split(','))
data = [
LabeledPoint(df[54], df[0:53])
]
TypeError: 'PipelinedRDD' object does not support indexing
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-67-fa1b56e8441e> in <module>()
2 df = myDataRDD.map(lambda line: line.split(','))
3 data = [
----> 4 LabeledPoint(df[54], df[0:53])
5 ]
TypeError: 'PipelinedRDD' object does not support indexing
Для уточнения, когда вы упоминаете о последней позиции в качестве вашей первой точки данных, вы имеете в виду это как метку и остальные элементы в качестве функций класса LabaledPoint? –