Yak*_*kov 1 python performance pandas apache-spark pyspark
我需要掩盖Spark数据框的一列以列出以便以后用于matplotlib
df.toPandas()[col_name].values.tolist()
Run Code Online (Sandbox Code Playgroud)
好像有高性能开销,此操作大约需要18秒,是否还有其他方法可以做到这一点或提高性能?
小智 7
您可以这样操作:
>>> [list(row) for row in df.collect()]
Run Code Online (Sandbox Code Playgroud)
示例:
>>> d = [['Alice', 1], ['Bob', 2]]
>>> df = spark.createDataFrame(d, ['name', 'age'])
>>> df.show()
+-----+---+
| name|age|
+-----+---+
|Alice| 1|
| Bob| 2|
+-----+---+
>>> to_list = [list(row) for row in df.collect()]
print list
结果:[[u'Alice', 1], [u'Bob', 2]]
如果您确实需要本地列表,则可以在这里做很多事情,但是一个改进是仅收集单个列而不是整个列DataFrame:
df.select(col_name).flatMap(lambda x: x).collect()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16082 次 |
| 最近记录: |