如何将pyspark数据帧列转换为numpy数组

2024-04-25 20:27:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将一个包含大约9000万行的pyspark数据帧列转换为numpy数组。在

我需要数组作为scipy.optimize.minimize函数的输入。在

我尝试过转换为Pandas和使用collect(),但这些方法非常耗时。在

我是PySpark新手,如果有更快更好的方法来做这件事,请帮忙。在

谢谢

这就是我的数据帧的样子。在

+----------+
|Adolescent|
+----------+
|       0.0|
|       0.0|
|       0.0|
|       0.0|
|       0.0|
|       0.0|
|       0.0|
|       0.0|
|       0.0|
|       0.0|
+----------+

Tags: 数据方法函数numpypandasscipy数组pyspark
1条回答
网友
1楼 · 发布于 2024-04-25 20:27:49

#1

您必须以任何方式调用.collect()。要从pyspark数据帧创建numpy数组,可以使用:

adoles = np.array(df.select("Adolescent").collect()) #.reshape(-1) for 1-D array

#二

{{numpy>然后可以使用^ cda1}将其转换为 ^{pr2}$

或者简单地说:

adoles = df.select("Adolescent").toPandas().values #.reshape(-1) for 1-D array

#三

对于分布式数组,可以尝试Dask Arrays

我没有测试过这个,但是假设它和numpy一样工作(可能有不一致之处):

import dask.array as da
adoles = da.array(df.select("Adolescent").collect()) #.reshape(-1) for 1-D array

相关问题 更多 >

    热门问题