簡體   English   中英

數據塊 - Pyspark 與 Pandas

[英]Databricks - Pyspark vs Pandas

我有一個 python 腳本,我在其中使用 pandas 來轉換/操作我的數據。 我知道我有一些“低效”的代碼塊。 我的問題是,如果 pyspark 應該快得多,我可以只使用 pyspark 而不是 pandas 替換這些塊,還是我需要所有東西都在 pyspark 中? 如果我在 Databricks 中,因為它已經在 spark 集群上,這真的有多大關系?

如果數據足夠小,您可以使用 pandas 來處理它,那么您可能不需要 pyspark。 當您擁有如此大的數據量以至於它不適合一台機器中的 memory 時,Spark 很有用,因為它可以執行分布式計算。 話雖如此,如果計算足夠復雜以至於可以從大量並行化中受益,那么您可以使用 pyspark 看到效率提升。 我對 pyspark 的 API 比 pandas 更滿意,所以我最終可能會使用 pyspark,但是你是否會看到效率提升很大程度上取決於問題。

Pandas 在單台機器上運行操作,而 PySpark 在多台機器上運行。 如果您正在處理大型數據集的機器學習應用程序,PySpark 是最合適的,它可以比 Pandas 快很多倍(100 倍)處理操作。

PySpark 對於處理大型數據集非常有效。 但是您可以在預處理和數據探索之后將 spark dataframe 轉換為 Pandas dataframe 以使用 sklearn 訓練機器學習模型。

讓我們比較蘋果與蘋果: pandas pyspark ,因為pandas不能進行分布式計算和核外計算。 你可以讓 Spark 對抗的是 Ray Core 上的dask (參見文檔) ,你甚至不必像使用 Spark 那樣學習不同的 API,因為 Dask 旨在成為pandasnumpy的分布式替代品(流行的 ML 包(例如scikit-learnxgboost )的Dask ML也是如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM