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

SQL、Pandas和Spark:這個庫,實現了三大數據分析工具的大一統

數據庫 Spark
由于Spark是基于Scala語言實現的大數據組件,而Scala語言又是運行在JVM虛擬機上的,所以Spark自然依賴JDK,截止目前為止JDK8依然可用,而且幾乎是安裝各大數據組件時的首選。所以搭建pyspark環境首先需要安裝JDK8,而后這里介紹兩種方式搭建pyspark運行環境。

 

01 pyspark簡介及環境搭建

pyspark是python中的一個第三方庫,相當于Apache Spark組件的python化版本(Spark當前支持Java Scala Python和R 4種編程語言接口),需要依賴py4j庫(即python for java的縮略詞),而恰恰是這個庫實現了將python和java的互聯,所以pyspark庫雖然體積很大,大約226M,但實際上絕大部分都是spark中的原生jar包,占據了217M,體積占比高達96%。

由于Spark是基于Scala語言實現的大數據組件,而Scala語言又是運行在JVM虛擬機上的,所以Spark自然依賴JDK,截止目前為止JDK8依然可用,而且幾乎是安裝各大數據組件時的首選。所以搭建pyspark環境首先需要安裝JDK8,而后這里介紹兩種方式搭建pyspark運行環境:

1)pip install pyspark+任意pythonIDE

pyspark作為python的一個第三方庫,自然可以通過pip包管理工具進行安裝,所以僅需執行如下命令即可完成自動安裝:

 

  1. pip install pyspark 

為了保證更快的下載速度,可以更改pip源為國內鏡像,具體設置方式可參考歷史文章:是時候總結一波Python環境搭建問題了

2)Spark官網下載指定tar包解壓

與其他大數據組件不同,Spark實際上提供了windows系統下良好的兼容運行環境,而且方式也非常簡單。訪問spark官網,選擇目標版本(當前最新版本是spark3.1.1版本),點擊鏈接即可跳轉到下載頁面,不出意外的話會自動推薦國內鏡像下載地址,所以下載速度是很有保證的。

 

 

 

 

下載完畢后即得到了一個tgz格式的文件,移動至適當目錄直接解壓即可,而后進入bin目錄,選擇打開pyspark.cmd,即會自動創建一個pyspark的shell運行環境,整個過程非常簡單,無需任何設置。

 

 

 

 

進入pyspark環境,已創建好sc和spark兩個入口變量

兩種pyspark環境搭建方式對比:

  • 運行環境不同:pip源安裝相當于擴展了python運行庫,所以可在任何pythonIDE中引入和使用,更為靈活方便;而spark tar包解壓本質上相當于是安裝了一個windows系統下的軟件,只能通過執行該“軟件”的方式進入
  • 提供功能不同:pip源安裝方式僅限于在python語言下使用,只要可以import pyspark即可;而spark tar包解壓,則不僅提供了pyspark入口,其實還提供了spark-shell(scala版本)sparkR等多種cmd執行環境;
  • 使用方式不同:pip源安裝需要在使用時import相應包,并手動創建sc和spark入口變量;而spark tar包解壓進入shell時,會提供已創建好的sc和spark入口變量,更為方便。

總體來看,兩種方式各有利弊,如果是進行正式的開發和數據處理流程,個人傾向于選擇進入第一種pyspark環境;而對于簡單的功能測試,則會優先使用pyspark.cmd環境。

02 三大數據分析工具靈活切換

在日常工作中,我們常常會使用多種工具來實現不同的數據分析需求,比如個人用的最多的還是SQL、Pandas和Spark3大工具,無非就是喜歡SQL的語法簡潔易用、Pandas的API豐富多樣以及Spark的分布式大數據處理能力,但同時不幸的是這幾個工具也都有各自的弱點,比如SQL僅能用于處理一些簡單的需求,復雜的邏輯實現不太可能;Pandas只能單機運行、大數據處理乏力;Spark接口又相對比較有限,且有些算子寫法會比較復雜。

懶惰是人類進步的階梯,這個道理在數據處理工具的選擇上也有所體現。

希望能在多種工具間靈活切換、自由組合選用,自然是最樸(偷)素(懶)的想法,所幸pyspark剛好能夠滿足這一需求!以SQL中的數據表、pandas中的DataFrame和spark中的DataFrame三種數據結構為對象,依賴如下幾個接口可實現數據在3種工具間的任意切換:

  • spark.createDataFrame() # 實現從pd.DataFrame -> spark.DataFrame
  • df.toPandas() # 實現從spark.DataFrame -> pd.DataFrame
  • df.createOrReplaceTempView() # 實現從spark.DataFrame注冊為一個臨時SQL表
  • spark.sql() # 實現從注冊臨時表查詢得到spark.DataFrame

當然,pandas自然也可以通過pd.read_sql和df.to_sql實現pandas與數據庫表的序列化與反序列化,但這里主要是指在內存中的數據結構的任意切換。

 

 

 

 

舉個小例子:

1)spark創建一個DataFrame

 

 

 

 

2)spark.DataFrame轉換為pd.DataFrame

 

 

 

 

3)pd.DataFrame轉換為spark.DataFrame

 

 

 

 

4)spark.DataFrame注冊臨時數據表并執行SQL查詢語句

 

 

 

 

暢想一下,可以在三種數據分析工具間任意切換使用了,比如在大數據階段用Spark,在數據過濾后再用Pandas的豐富API,偶爾再來幾句SQL!然而,理想很豐滿現實則未然:期間踩坑之深之廣,冷暖自知啊……

 

責任編輯:華軒 來源: 小數志
相關推薦

2025-06-09 09:50:00

VeactReact

2020-12-13 13:40:22

健康碼移動應用

2015-07-30 12:27:30

重郵華為

2023-07-17 08:03:03

Shell腳本SQL

2017-12-15 17:14:10

云端

2015-05-06 13:52:52

微軟外媒

2014-07-29 13:25:43

WWDC 2014 S

2012-02-28 09:54:01

Windows 8微軟賬戶

2024-04-23 13:38:00

AI數據

2023-03-13 13:40:20

機器學習AI

2024-03-20 09:29:41

2025-03-18 09:29:54

2023-09-14 09:44:29

2023-05-10 14:58:06

開源模型

2025-03-13 10:18:42

2025-02-03 12:16:01

視頻生成AI

2023-07-22 13:17:33

人工智能框架

2024-08-26 07:40:00

AI訓練

2024-01-24 09:24:19

自動駕駛算法

2024-12-10 09:49:53

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 97国产精品| 久久亚洲精品久久国产一区二区 | 精品免费 | 日日夜夜av | 岛国av免费看| 亚洲一区二区视频在线观看 | 日韩成人在线观看 | 91国内精品 | 国外激情av | 国产精品久久久久一区二区三区 | 国产精品日韩在线 | 九九精品视频在线 | 人人种亚洲 | 日韩成人高清 | 精品日韩 | 日韩欧美国产不卡 | 久久这里有精品 | 国产精品成人在线观看 | 天天操天天射综合网 | 亚洲欧洲精品一区 | 欧美激情久久久 | 久久精品网 | 日日干日日操 | 亚洲精品自拍视频 | 欧美日韩亚洲一区二区 | 亚洲成人精 | 国产精品片aa在线观看 | 亚洲另类自拍 | 国产在线网站 | 色黄网站| 日韩午夜网站 | 欧美亚洲另类丝袜综合网动图 | 亚洲精品久久久久久久久久久久久 | 国产福利91精品一区二区三区 | 亚洲精品一区二区 | 国产精品久久久久久久久久久久久久 | 欧美一区二区三区在线免费观看 | 日韩在线视频播放 | 日本三级全黄三级三级三级口周 | 久久一区二区免费视频 | 天堂免费 |