我需要隱蔽星火據幀的一列列出以後使用matplotlib火花 - 轉換數據框中列出提高性能
df.toPandas()[col_name].values.tolist()
它看起來像有很高的性能開銷這種操作需要大約18秒 是還有其他方法可以做到這一點或改善性能?
我需要隱蔽星火據幀的一列列出以後使用matplotlib火花 - 轉換數據框中列出提高性能
df.toPandas()[col_name].values.tolist()
它看起來像有很高的性能開銷這種操作需要大約18秒 是還有其他方法可以做到這一點或改善性能?
你可以這樣來做:
>>> [list(row) for row in df.collect()]
實施例:
>>> 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]]
儘管此代碼可能會回答問題,但提供有關如何解決問題和/或解決問題原因的其他上下文會提高答案的長期價值。請閱讀此[如何回答](http://stackoverflow.com/help/how-to-answer)以提供高質量的答案。 – thewaywewere
我猜的性能開銷是相當在toPandas()中,因爲這是鏈中的第一個動作。 – JiriS
@JiriS我能做些什麼呢? – Yakov
你在這一列中有多少數據? Spark必須將該列的所有數據發送給驅動程序(加上序列化/反序列化開銷)。你在使用kryo序列化嗎?如果不啓用它。 – JiriS