自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用于ETL的Python數(shù)據(jù)轉(zhuǎn)換工具

開(kāi)發(fā) 后端
前幾天,我去Reddit詢問(wèn)是否應(yīng)該將Python用于ETL相關(guān)的轉(zhuǎn)換,并且壓倒性的回答是"是"。

 前幾天,我去Reddit詢問(wèn)是否應(yīng)該將Python用于ETL相關(guān)的轉(zhuǎn)換,并且壓倒性的回答是"是"。

[[334202]]

但是,盡管我的Redditor同事熱心支持使用Python,但他們建議研究Pandas以外的庫(kù)-出于對(duì)大型數(shù)據(jù)集Pandas性能的擔(dān)憂。

經(jīng)過(guò)研究,我發(fā)現(xiàn)了很多用于數(shù)據(jù)轉(zhuǎn)換的Python庫(kù):有些改進(jìn)了Pandas的性能,而另一些提供了自己的解決方案。

我找不到這些工具的完整列表,所以我想我可以使用所做的研究來(lái)編譯一個(gè)工具-如果我錯(cuò)過(guò)了什么或弄錯(cuò)了什么,請(qǐng)告訴我!

Pandas

網(wǎng)站:https://pandas.pydata.org/

總覽

Pandas當(dāng)然不需要介紹,但是我還是給它一個(gè)介紹。

Pandas在Python中增加了DataFrame的概念,并在數(shù)據(jù)科學(xué)界廣泛用于分析和清理數(shù)據(jù)集。 它作為ETL轉(zhuǎn)換工具非常有用,因?yàn)樗共僮鲾?shù)據(jù)非常容易和直觀。

優(yōu)點(diǎn)

  • 廣泛用于數(shù)據(jù)處理
  • 簡(jiǎn)單直觀的語(yǔ)法
  • 與其他Python工具(包括可視化庫(kù))良好集成
  • 支持常見(jiàn)的數(shù)據(jù)格式(從SQL數(shù)據(jù)庫(kù),CSV文件等讀取)

缺點(diǎn)

  • 由于它會(huì)將所有數(shù)據(jù)加載到內(nèi)存中,因此無(wú)法擴(kuò)展,并且對(duì)于非常大(大于內(nèi)存)的數(shù)據(jù)集來(lái)說(shuō)可能是一個(gè)錯(cuò)誤的選擇

進(jìn)一步閱讀

  • 10分鐘Pandas
  • Pandas機(jī)器學(xué)習(xí)的數(shù)據(jù)處理

Dask

 

網(wǎng)站:https://dask.org/

總覽

根據(jù)他們的網(wǎng)站," Dask是用于Python并行計(jì)算的靈活庫(kù)。"

從本質(zhì)上講,Dask擴(kuò)展了諸如Pandas之類的通用接口,供在分布式環(huán)境中使用-例如,Dask DataFrame模仿了。

優(yōu)點(diǎn)

  • 可擴(kuò)展性— Dask可以在本地計(jì)算機(jī)上運(yùn)行并擴(kuò)展到集群
  • 能夠處理內(nèi)存不足的數(shù)據(jù)集
  • 即使在相同的硬件上,使用相同的功能也可以提高性能(由于并行計(jì)算)
  • 最少的代碼更改即可從Pandas切換
  • 旨在與其他Python庫(kù)集成

缺點(diǎn)

  • 除了并行性,還有其他方法可以提高Pandas的性能(通常更為顯著)
  • 如果您所做的計(jì)算量很小,則沒(méi)有什么好處
  • Dask DataFrame中未實(shí)現(xiàn)某些功能

進(jìn)一步閱讀

  • Dask文檔
  • 為什么每個(gè)數(shù)據(jù)科學(xué)家都應(yīng)該使用Dask

Modin

 

網(wǎng)站:https://github.com/modin-project/modin

總覽

Modin與Dask相似之處在于,它試圖通過(guò)使用并行性并啟用分布式DataFrames來(lái)提高Pandas的效率。 與Dask不同,Modin基于Ray(任務(wù)并行執(zhí)行框架)。

Modin優(yōu)于Dask的主要好處是Modin可以自動(dòng)處理跨計(jì)算機(jī)核心分發(fā)數(shù)據(jù)(無(wú)需進(jìn)行配置)。

優(yōu)點(diǎn)

  • 可伸縮性— Ray比Modin提供的更多
  • 完全相同的功能(即使在相同的硬件上)也可以提高性能
  • 最小的代碼更改即可從Pandas切換(更改import語(yǔ)句)
  • 提供所有Pandas功能-比Dask更多的"嵌入式"解決方案

缺點(diǎn)

  • 除了并行性,還有其他方法可以提高Pandas的性能(通常更為顯著)
  • 如果您所做的計(jì)算量很小,則沒(méi)有什么好處

進(jìn)一步閱讀

  • Modin文檔
  • Dask和Modin有什么區(qū)別?

Petl

網(wǎng)站:https://petl.readthedocs.io/en/stable/

總覽

petl包含了pandas的許多功能,但專為ETL設(shè)計(jì),因此缺少額外的功能,例如用于分析的功能。 petl具有用于ETL的所有三個(gè)部分的工具,但本文僅專注于數(shù)據(jù)轉(zhuǎn)換。

盡管petl提供了轉(zhuǎn)換表的功能,但其他工具(例如pandas)似乎更廣泛地用于轉(zhuǎn)換和有據(jù)可查的文檔,因此petl對(duì)此吸引力較小。

優(yōu)點(diǎn)

  • 最小化系統(tǒng)內(nèi)存的使用,使其能夠擴(kuò)展到數(shù)百萬(wàn)行
  • 對(duì)于在SQL數(shù)據(jù)庫(kù)之間進(jìn)行遷移很有用
  • 輕巧高效

缺點(diǎn)

  • 通過(guò)很大程度地減少對(duì)系統(tǒng)內(nèi)存的使用,petl的執(zhí)行速度會(huì)變慢-不建議在性能很重要的應(yīng)用程序中使用
  • 較少使用此列表中的其他解決方案進(jìn)行數(shù)據(jù)處理

進(jìn)一步閱讀

  • 使用Petl快速了解數(shù)據(jù)轉(zhuǎn)換和遷移
  • petl轉(zhuǎn)換文檔

PySpark

 

網(wǎng)站:http://spark.apache.org/

總覽

Spark專為處理和分析大數(shù)據(jù)而設(shè)計(jì),并提供多種語(yǔ)言的API。 使用Spark的主要優(yōu)點(diǎn)是Spark DataFrames使用分布式內(nèi)存并利用延遲執(zhí)行,因此它們可以使用集群處理更大的數(shù)據(jù)集,而Pandas之類的工具則無(wú)法實(shí)現(xiàn)。

如果要處理的數(shù)據(jù)非常大,并且數(shù)據(jù)操作的速度和大小很大,Spark是ETL的理想選擇。

優(yōu)點(diǎn)

  • 可擴(kuò)展性和對(duì)更大數(shù)據(jù)集的支持
  • 就語(yǔ)法而言,Spark DataFrames與Pandas非常相似
  • 通過(guò)Spark SQL使用SQL語(yǔ)法進(jìn)行查詢
  • 與其他流行的ETL工具兼容,包括Pandas(您實(shí)際上可以將Spark DataFrame轉(zhuǎn)換為Pandas DataFrame,從而使您可以使用各種其他庫(kù))
  • 與Jupyter筆記本電腦兼容
  • 內(nèi)置對(duì)SQL,流和圖形處理的支持

缺點(diǎn)

  • 需要一個(gè)分布式文件系統(tǒng),例如S3
  • 使用CSV等數(shù)據(jù)格式會(huì)限制延遲執(zhí)行,需要將數(shù)據(jù)轉(zhuǎn)換為Parquet等其他格式
  • 缺少對(duì)數(shù)據(jù)可視化工具(如Matplotlib和Seaborn)的直接支持,這兩種方法都得到了Pandas的良好支持

進(jìn)一步閱讀

  • Python中的Apache Spark:新手指南
  • PySpark簡(jiǎn)介
  • PySpark文檔(尤其是語(yǔ)法)

值得一提

盡管我希望這是一個(gè)完整的列表,但我不希望這篇文章過(guò)長(zhǎng)!

確實(shí)有很多許多用于數(shù)據(jù)轉(zhuǎn)換的Python工具,因此我包括了這一部分,至少是我錯(cuò)過(guò)的其他項(xiàng)目(我可能會(huì)在本文的第二部分中進(jìn)一步探討這些項(xiàng)目)。

  • bonobo https://www.bonobo-project.org/
  • bubbles http://bubbles.databrewery.org/
  • pygrametl http://chrthomsen.github.io/pygrametl/
  • Apache Beam https://beam.apache.org/

結(jié)論

我希望這份清單至少可以幫助您了解Python必須提供哪些工具來(lái)進(jìn)行數(shù)據(jù)轉(zhuǎn)換。 在進(jìn)行了這項(xiàng)研究之后,我相信Python是ETL的優(yōu)秀選擇-這些工具及其開(kāi)發(fā)人員使它成為了一個(gè)了不起的平臺(tái)。

就像我在本文開(kāi)頭提到的那樣,我不是該領(lǐng)域的專家-如果您有任何補(bǔ)充,請(qǐng)隨時(shí)發(fā)表評(píng)論!

謝謝閱讀!

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2010-06-15 21:49:03

虛擬機(jī)遷移轉(zhuǎn)換工具

2021-02-19 13:19:30

ETL數(shù)據(jù)科學(xué)工具

2022-09-24 16:53:05

Python工具辦公

2009-03-25 17:10:50

Linux視頻轉(zhuǎn)換

2025-04-17 03:00:00

dbt數(shù)據(jù)轉(zhuǎn)換工具開(kāi)源

2014-07-24 09:45:00

HTML視頻視頻轉(zhuǎn)換

2024-11-28 15:09:00

Python編程文件格式轉(zhuǎn)換

2010-01-08 10:49:21

JSON 轉(zhuǎn)換工具

2022-06-07 09:58:48

Spotify開(kāi)源音頻文件

2023-07-12 07:15:24

2014-12-30 09:35:16

文字轉(zhuǎn)語(yǔ)音

2020-08-14 07:57:51

MySQL工具語(yǔ)法

2012-05-23 09:40:09

HTML5

2018-08-31 10:10:55

Linux開(kāi)源轉(zhuǎn)換工具

2024-03-26 15:25:55

應(yīng)用接口文件轉(zhuǎn)換工具鴻蒙

2023-10-19 15:35:44

.NET轉(zhuǎn)換工具開(kāi)發(fā)

2023-07-19 07:29:00

2021-07-29 09:00:00

Python工具機(jī)器學(xué)習(xí)

2022-07-07 15:17:04

HandBrake視頻轉(zhuǎn)換開(kāi)源

2016-10-20 09:57:58

Linux轉(zhuǎn)換工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)