更新pyspark的dataframe列

时间:2017-01-27 18:56:20

标签: python-2.7 dataframe pyspark apache-spark-mllib

我正在尝试从较旧的数据框中创建一个新的数据框,修改其中出现的元素。我有这样的数据框:

+-------+--------------------+--------------------+
| A     |            B       |                   C|
+-------+--------------------+--------------------+
| 224.39|[2533695.47884,25...|[2.53311343446655...|
| 398.56|[2551303.18964,25...|[6740638.70550121...|
|1445.59|[2530998.06972,25...|[7839490.11546087...|

在B列和C列中有元素列表(每列的每行约100个)。我想从这一个中创建一个新的数据帧,例如,每行的C列中有5个元素。它会是这样的:

+-------+--------------------+--------------------+
| A     |            B       |                   C|
+-------+--------------------+--------------------+
| 224.39|[2533695.47884,25...|[1,2,3,4,5]         |
| 398.56|[2551303.18964,25...|[1,2,3,4,5]         |
|1445.59|[2530998.06972,25...|[1,2,3,4,5]         |

到目前为止,我只设法在新数据框中提取C列,我尝试使用foreach(lambda x: x[0:5]),但此foreach之后的数据帧是NoneType元素,但它不起作用。

提前致谢。

1 个答案:

答案 0 :(得分:1)

最后我找到了一种方法。使用VectorSlicer非常简单,可以从PCA中选择功能。