本文目錄一覽:
- 1、Python + Pandas + Matplotlib初探數據分析
- 2、windows下怎麼用python連接hive資料庫
- 3、python怎麼讀取hive元數據,執行大sql
- 4、Hive是什麼?
- 5、python如何增量讀取hive數據,每次執行腳本把上次的結果做基準,列印出新增的部分?
Python + Pandas + Matplotlib初探數據分析
大數據測試,說來進入這塊領域也快2年半了。每天工作的內容是驗證數據表的邏輯正確性。
最近偶有所思,數據測試能否更進一步?如何利用已有技能對海量數據進行全面分析,找出數據質量問題或協助數據分析師發現邏輯漏洞?
再或者,能否向數據分析師轉型呢?想得很多,思緒有些雜亂。於是我冷靜了下,不再空想。我先做點東西出來看看,再評估下自己是否有這個能力和資質。
花了1個星期的時間,學習了 Python 的 Pandas 模塊,按照學習示例一邊學習一邊實操,慢慢地感覺就來了。對 Pandas 有了基本的認知後,我在尋找一個突破點,我想我不能一直只是這樣按照示例代碼敲下去,毫無意義。
我得將所學的 Pandas 知識結合公司現有的業務進行運用。剛開始至少能簡單地開始對某張數據表的某個指標進行數據分析。於是我按照這樣的想法對 test. test_resv001_room_daily_df 表的 number_of_room_nights 指標開始了數據分析的 探索 。
1、hivesql數據準備
hivesql內容說明:
從上面的 hivesql 語句可以看出,這條 sql 的目的是查詢出 hotel_code_new 為 ‘CNSZV002′,’CWH’,’CWSW’,’ESL’,’FIJ’ 在2019年各個月份的 number_of_room_nights 指標總和,按照 hotel_code_new 和月份作分組和排序。
2、代碼實現
3、hive資料庫all_data的數據結構查詢結果
4、代碼實現2中的print(df)輸出結果
手工校對通過,與 hivesql 輸出結果一致。
5、將dataframe數據結構的df數據使用plot生成趨勢圖
調用df.plot()不帶任何參數的趨勢圖如下:
上述折線圖表示:當前月份值及 歷史 月份值的累加和。
調用df.plot(kind=’bar’)時加上參數kind=’bar’的趨勢圖如下:
上述柱狀圖表示:當前月份值及 歷史 月份值的累加和。
兩個圖只是展示形式上的區別,都能在一定程度上體現2019年12個月份每個不同 hotel_code_new 當前月份與 歷史 月份 number_of_room_nights 值的累加和的數據分布情況,可以說是一個簡單的數據分析。
6、將dataframe數據寫入csv文件
room_nts.csv內容如下:
7、讀取csv文件中dataframe數據
8、將dataframe多維數據存儲到excel中
room_nts.xlsx文件中sheet_name為room_nts的內容如下:
9、從excel中讀取dataframe多維數據
小結
今天分享的數據分析內容比較基礎,主要是將學到的技能與業務相結合的初步 探索 ,後續還需要不斷 探索 與學習,將學習到的技能加以思考並運用到實際項目業務中,如此方能走得更遠。
windows下怎麼用python連接hive資料庫
由於版本的不同,Python 連接 Hive 的方式也就不一樣。
在網上搜索關鍵字 python hive 的時候可以找到一些解決方案。大部分是這樣的,首先把hive 根目錄下的$HIVE_HOME/lib/py拷貝到 python 的庫中,也就是 site-package 中,或者乾脆把新寫的 python 代碼和拷貝的 py 庫放在同一個目錄下,然後用這個目錄下提供的 thrift 介面調用。示例也是非常簡單的。類似這樣:
import sys
from hive_service import ThriftHive
from hive_service.ttypes import HiveServerException
from thrift import Thrift
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
def hiveExe(sql):
try:
transport = TSocket.TSocket(‘127.0.0.1’, 10000)
transport = TTransport.TBufferedTransport(transport)
protocol = TBinaryProtocol.TBinaryProtocol(transport)
client = ThriftHive.Client(protocol)
transport.open()
client.execute(sql)
print “The return value is : “
print client.fetchAll()
print “…………”
transport.close()
except Thrift.TException, tx:
print ‘%s’ % (tx.message)
python怎麼讀取hive元數據,執行大sql
#!/usr/bin/env pythonimport syssys.path.append(‘/usr/local/hive-0.10.0/lib/py’)from hive_service import ThriftHivefrom hive_service.ttypes import HiveServerExceptionfrom thrift import Thriftfrom thrift.transport import TSocketf…
Hive是什麼?
此外,hive也支持熟悉map-reduce的開發者使用map-reduce程序對數據做更加複雜的分析。hive可以很好的結合thrift和控制分隔符,也支持用戶自定義分隔符。hive基於hadoop,hadoop是批處理系統,不能保存低延遲,因此,hive的查詢也不能保證低延遲。hive的工作模式是:提交一個任務,等到任務結束時被通知,而不是實時查詢。相對應的是,類似於Oracle這樣的系統當運行於小數據集的時候,響應非常快,可當處理的數據集非常大的時候,可能需要數小時。需要說明的是,hive即使在很小的數據集上運行,也可能需要數分鐘才能完成。低延遲不是hive追求的首要目標。
python如何增量讀取hive數據,每次執行腳本把上次的結果做基準,列印出新增的部分?
1.讀取文本文件數據(.txt結尾的文件)或日誌文件(.log結尾的文件)list0與list1分別為文檔中的第一列數據與第二列數據。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/308422.html