У меня есть следующий 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'])
, но это не сработало. Есть ли у кого-нибудь предложения? Благодаря!
Спасибо! map (lambda x: (x,)) выглядит очень загадочно, не могли бы вы подробнее рассказать? Спасибо! – Edamame
'(x,)' - это один элемент 'tuple'. Картирование необходимо, потому что только [некоторые объекты могут быть преобразованы в 'Row'] (http://stackoverflow.com/a/32742294/1560062) – zero323