成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數據科學家本地處理大中型數據的三種簡單方法

譯文
大數據
作為數據科學家,我們通常面臨龐大的數據集,少則幾千萬條記錄,多則幾億條記錄,可能有幾十列,甚至幾百列。這些數據通常以csv文件來接收,以多種方式來處理,最終目的是運行用Python或R編寫的復雜的機器學習算法。

【51CTO.com快譯】作為數據科學家,我們通常面臨龐大的數據集,少則幾千萬條記錄,多則幾億條記錄,可能有幾十列,甚至幾百列。這些數據通常以csv文件來接收,以多種方式來處理,最終目的是運行用Python或R編寫的復雜的機器學習算法。然而,這些數據不會裝入到RAM內存中,因此需要設計替代工具。

所有這些數據可以分配到一個集群中,并在集群中加以處理,但是這需要上傳文件這個繁瑣的過程,花費服務器時間方面的開銷,而且我們在處理敏感數據時擔心安全問題,需要相當復雜的編程方法,還要花時間來下載輸出結果。當然,總是可以創建本地的Spark會話,但學習曲線相當陡(意味著學起來困難),安裝對初學者來說是個難題(如果目標是偶爾處理幾個大文件,更是困難重重)。

我們在本文中著重介紹處理這種數據集的幾種簡單技術(包括安裝和運行)。

[[215741]]

***種選擇:遍歷文件

你可以使用Python或R來快速遍歷文件。在本文中,我們將遍歷一個非常大的文件。數據集如下:5379074個觀測值和8列,有整數、日期和字符串,光盤上的文件大小是212 MB。

本地處理大中型數據的若干簡單方法

圖1

我們將生成一個類,用于處理這個文件。在這個類中,我們將定義兩個簡單的操作,***個操作是計算***值,第二個操作將過濾與特定名稱對應的記錄。在***三行中,我們為這個類創建實例,并使用其方法。

請注意:我們之所以沒使用pandas.read_csv,是因為這個數據集通常不會裝入到內存中(這取決于你的計算機)。另外請注意,我們排除了***條記錄,因為它含有文件頭。

本地處理大中型數據的若干簡單方法

圖2

問題是,在大多數實際情況下,就在我們偏離簡單的子集設置(sub-setting)操作的同一時刻,代碼的復雜性就會以驚人的方式增加。比如說,即使為一個使用文件的簡單的排序過程編寫代碼也非常復雜,更不用說處理缺失值、多變量類型和日期格式等問題了。更糟糕的是,大多數數據處理操作需要很好地實現排序過程:合并、置換和匯總不僅本身很困難,還總是要求經過排序的數據在合理的時間內運行。

第二種選擇:SAS

幾十年來,SAS一直是***的統計分析軟件。除了其出色的統計方法實現外,SAS還讓我們可以輕松處理數億個觀測值。它是通過使用硬盤來存儲數據做到這點的,而不是像大多數軟件那樣使用RAM內存來存儲數據。除此之外,這些文件可能有數千列。

SAS編程語言非常簡單而靈活。比如說,只要短短幾行代碼就可以實現讀取文件并進行排序:

  1. Data customer_data;  
  2. infile “./sales.csv” lrecl=32767 missover;  
  3. input User_id: 8. Salesman: $10. Date: mmddyy8. Customername: $10. City:$3. Country: $6.  
  4. Discount: $9. Promo: 8.;  
  5. run;  
  6. proc sort data = customer_data;  
  7. by User_id;  
  8. run; 

日志文件是SAS一個經常被忽視的方面,但也是其***大的功能之一。日志文件是一種功能極其強大的工具,可用于識別奇怪的觀測值、缺失值和異常結果。比如說,將兩個文件與數百萬個觀測值合并時,你只要查看多少觀測值在兩個文件中被讀取、多少觀測值作為輸出被寫入,立即就能發現問題。

你通常不會發現任何種類的限制或局限。不過遇到極其龐大的文件,使用分布式環境會來得更方便,使用在集群上運行的Spark(但這已在本文的討論范圍之外)。遺憾的是,SAS許可證通常相當昂貴,而且只能在計算機上運行。

第三種選擇:nitroproc

nitroproc是一款免費的跨平臺軟件(目前適用于Windows/MacOS/安卓/iOS),是為處理數據(專門面向數據科學家)而設計的。它可以借助Python或R,通過批處理模式來調用。與SAS類似,它旨在使用硬盤來存儲數據,所以對數據大小幾乎沒有限制。其腳本可以部署到任何設備上,不用改變其語法(有待處理的正確的輸入文件路徑顯然除外)。

我們在本文中將演示如何使用Windows版本和安卓版本(iOS版本也可以從App Store下載)。它可處理不同的變量類型、文件格式和缺失值。當前版本讓你可以進行排序、合并、過濾、子集、計算虛擬變量、聚合及其他許多數據處理操作,這些過去是數據科學家所做的任務。

與SAS相似,nitroproc可以生成功能非常強大的日志,用于識別奇怪的數據和錯誤的合并等問題。另外,它還生成名為logtracer的另一個日志文件,用于邏輯分析腳本中的不同指令有怎樣的關系。

按一個鍵排序540萬個觀測值

在這個例子中,我們將在PC和(舊)安卓手機中排序一個很大的文件,只是為了顯示nitroproc的功能有多強大。我們將使用圖1中所用的同一個數據集,即含有540萬條記錄的數據集。請記住,該數據集有5379074個觀測值和8列,包含整數、日期和字符串,光盤上的文件大小是212MB。這里我們將按它的***列(User_id)來排序。

你可以從https://www.nitroproc.com/download.html下載csv文件,復制我們在此處顯示的相同結果。我在這里建議進行測試時,手機連接到PC/Mac,沒有其他進程在后臺運行。

語法很簡單,我們只要寫:

  1. sort(file = sales.csv,by = [User_id],coltypes = [int,string,dd / mm / yyyy,string,string,string,intint],order = [asc],outname = result.csv, out_first_row = true) 

所有參數基本上不需要加以說明。order指定我們是否需要升序還是降序,out_first_row用于指定我們想不想要輸出文件頭。你可能注意到,我們沒有指定任何文件頭,因為csv已經包括文件頭。如果不包含,我們需要輸入headers=[colum_name1,…,column_namek]。針對PC,我們需要指定適當的文件路徑,但如果是安卓和iOS版本,只需要文件名,因為文件路徑會自動恢復(如果是安卓,使用/Downloads文件夾;如果是iPhone/iPad,使用App文件夾,它可以通過iTunes來訪問)。

排序在nitroproc中來得特別重要,因為它用于合并文件、匯總文件及其他操作。

PC版本

在一臺相當標準的(2012年)桌面英特爾i5-4430 @3.00 GHz和標準的希捷500GB ST500DM002硬盤上,排序用時1分25秒(請查看圖3:nitroproc生成的日志文件,PC版本)完成。在***的英特爾設備上,比如i7-4970k,并使用固態硬盤,腳本的運行速度至少快3倍(通過超頻,可以達到更快的速度)。

本地處理大中型數據的若干簡單方法

圖3

安卓版本

在裝有安卓7.0 Nougat的Nexus上運行相同的腳本要慢得多(圖4是nitroproc生成的日志文件,安卓版本,但仍可以順暢無阻地運行)。這款手機是2015年發布的,采用1.8Ghz處理器(記住這不是一款高端手機)。如圖1所示,用時15分鐘。在***的(2017年)高端安卓手機上,運行該腳本預計只要一半的時間(7分鐘)。由于基本上沒有使用RAM,nitroproc在RAM不足的系統中可以非常順暢地運行。

本地處理大中型數據的若干簡單方法

圖4

iOS版本

***,看一下在iPhone 8 Plus(A11仿生芯片)上運行的iOS版本的結果。這些結果讓我覺得驚訝。蘋果聲稱,iPhone 8和X是有史以來最快的手機,但這可能是低調的說法。你可以看到,它在2分42秒內排序完文件,比我們的桌面英特爾CPU只慢了近一倍(記住PC的耗電量超過250瓦,而iPhone 8s在6.96瓦左右),但比普通的安卓手機幾乎快5.5倍。對于iPhone 8 Plus(和使用相同芯片的iPhone X)來說一種更準確的說法是,它堪稱工程奇跡,提供了與耗電量高出35倍的桌面游戲CPU相當的性能。要知道:nitroproc涉及非常密集的輸入/輸出操作,本文測試中涉及數億次的寫入和讀取,因為有大量的中間操作。A11及其操作系統能夠以如此快的速度從硬盤讀取如此多的數據,這幾乎是超現實的。

本地處理大中型數據的若干簡單方法

圖5

原文標題:Simple Ways Of Working With Medium To Big Data Locally,作者:Francisco Juretig

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:未麗燕 來源: 51CTO.com
相關推薦

2017-08-04 15:53:10

大數據真偽數據科學家

2016-05-11 10:36:16

數據科學家數據科學大數據

2017-01-23 16:00:25

數據科學家大數據數學家

2010-09-27 11:16:35

數據防泄露

2010-01-31 10:47:11

企業數據安全數據安全數據泄漏

2019-06-05 15:17:45

2019-07-30 12:05:20

數據科學采樣算法

2016-09-22 14:28:33

數據科學家算法

2012-12-26 10:51:20

數據科學家

2018-12-24 08:37:44

數據科學家數據模型

2010-09-17 19:52:57

數據泄露

2020-09-04 16:17:15

數據科學離群點檢測

2018-02-28 15:03:03

數據科學家數據分析職業

2021-08-31 10:51:34

UPS電源環境

2018-03-27 11:02:55

2021-09-14 09:13:38

UPS電源安裝供電系統

2018-10-16 14:37:34

數據科學家數據分析數據科學

2015-08-25 13:20:29

數據科學

2016-04-11 14:15:06

數據科學數據挖掘工具

2020-03-20 14:40:48

數據科學Python學習
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品免费看 | www亚洲精品 | 亚洲精品乱码8久久久久久日本 | 久久久久网站 | 伊人久操 | 久久成人综合 | 亚洲精品自在在线观看 | 精品久久久久国产 | 亚洲成人网在线 | 91黄色片免费看 | 91精品国产综合久久久久久漫画 | 久久午夜视频 | 人成在线视频 | 大象一区 | 香蕉视频在线播放 | 日韩在线不卡 | 欧美日韩最新 | 国产免费看 | 国产黄视频在线播放 | 久久99深爱久久99精品 | 免费黄色片视频 | 亚洲男人的天堂网站 | 亚洲国产欧美日韩 | 99re99| av片在线免费看 | 亚洲成人免费视频 | 中文一区| 黄网免费看 | 资源首页二三区 | www.99热这里只有精品 | 国产精品18毛片一区二区 | 亚洲成人av在线播放 | 精品一区二区久久久久久久网站 | 欧美一区在线视频 | 最新中文字幕在线播放 | 一级黄色绿像片 | 成人精品区 | 一级无毛片 | 欧美成人精品一区二区男人看 | 亚洲日本国产 | 每日更新av |