2016-09-17 4 views
0

У меня есть следующий RDD:pyspark: конвертировать РДД [DenseVector] для dataframe

rdd.take (5) дает мне:

[DenseVector([9.2463, 1.0, 0.392, 0.3381, 162.6437, 7.9432, 8.3397, 11.7699]), 
DenseVector([9.2463, 1.0, 0.392, 0.3381, 162.6437, 7.9432, 8.3397, 11.7699]), 
DenseVector([5.0, 20.0, 0.3444, 0.3295, 54.3122, 4.0, 4.0, 9.0]), 
DenseVector([9.2463, 1.0, 0.392, 0.3381, 162.6437, 7.9432, 8.3397, 11.7699]), 
DenseVector([9.2463, 2.0, 0.392, 0.3381, 162.6437, 7.9432, 8.3397, 11.7699])] 

Я хотел бы сделать это кадр данных, который должен выглядеть например:

------------------------------------------------------------------- 
| features              | 
------------------------------------------------------------------- 
| [9.2463, 1.0, 0.392, 0.3381, 162.6437, 7.9432, 8.3397, 11.7699] | 
|-----------------------------------------------------------------| 
| [9.2463, 1.0, 0.392, 0.3381, 162.6437, 7.9432, 8.3397, 11.7699] | 
|-----------------------------------------------------------------| 
| [5.0, 20.0, 0.3444, 0.3295, 54.3122, 4.0, 4.0, 9.0]    | 
|-----------------------------------------------------------------| 
| [9.2463, 1.0, 0.392, 0.3381, 162.6437, 7.9432, 8.3397, 11.7699] | 
|-----------------------------------------------------------------| 
| [9.2463, 2.0, 0.392, 0.3381, 162.6437, 7.9432, 8.3397, 11.7699] | 
|-----------------------------------------------------------------| 

Возможно ли это? Я попытался использовать df_new = sqlContext.createDataFrame(rdd,['features']), но это не сработало. Есть ли у кого-нибудь предложения? Благодаря!

ответ

3

Карта tuples первая:

rdd.map(lambda x: (x,)).toDF(["features"]) 

Просто имейте в виду, что из искры 2.0 существует два различных Vector место при реализации ml алгоритмы требуют pyspark.ml.Vector.

+0

Спасибо! map (lambda x: (x,)) выглядит очень загадочно, не могли бы вы подробнее рассказать? Спасибо! – Edamame

+0

'(x,)' - это один элемент 'tuple'. Картирование необходимо, потому что только [некоторые объекты могут быть преобразованы в 'Row'] (http://stackoverflow.com/a/32742294/1560062) – zero323

Смежные вопросы