全部產品
Search
文件中心

Dataphin:Python內建資源套件

更新時間:Sep 03, 2025

在開發Python計算任務時,通常需要根據業務情境安裝如下資源套件。以下資源套件已經預置至系統內,您在開發代碼過程中,只需要在代碼開始部分添加import 資源套件名語句即可,例如import configparser

內建資源套件列表

以下列表列出了Dataphin內建的資源套件,同時您也可以在Shell計算任務中運行pip list命令查看內建的資源套件模組。

資源套件

資源套件版本

適用情境

configparser

>=3.5.0

讀取設定檔。

DateTime

資料處理。

hdfs

>=2.1.0

Hadoop計算引擎下,使用HDFS。

jumpssh

使用跳板機串連伺服器。

mysql-connector-python

>=8.0.11

串連並操作MySQL。

numpy

演算法基礎處理。

pandas

演算法基礎處理。

psycopg2

>=2.7.4

串連操作PostgreSQL。

pyhdfs

>=0.2.1

Hadoop計算引擎下,使用HDFS。

pyhs2

>=0.6.0

串連並操作HDFS。

pyodps

>=0.7.16

ODPS操作,適用ODPS。

pyspark

>=2.3.1

Hadoop計算引擎下,使用Spark。

requests

>=2.4.0

演算法基礎處理。

scikit-learn

演算法基礎處理。

scipy

演算法基礎處理。

setuptools

>=3.0

Python基礎功能庫。

yarn-api-client

>=0.2.3

Yarn-api用戶端。

Matplotlib

演算法基礎處理。

Dataphin 內使用 PyHive和PyOdps。

在Dataphin內,除了支援本地方式使用PyHive和PyOdps外,還支援通過使用from dataphin import odpsfrom dataphin import hivec物件控點方式進行使用。該方式解決了本地方式存在的以下問題:

  1. 如果Hive使用帳號密碼認證,就需要開發人員可以擷取到帳號密碼。這容易造成帳號泄露,同時如果修改帳號密碼,需要同步更新程式或變數。

  2. 如果Hive使用Kerberos認證,除了開發人員需要擷取keytab容易造成泄密和修改的問題外,Kerberos認證流程的代碼實現也比較複雜。

  3. Dataphin無法對使用者做鑒權,可以繞開Dataphin的許可權體系。

  4. 無法查詢使用邏輯表。

PyHive和PyOdps文法使用範圍

  • 支援查詢物理表。

  • 支援查詢邏輯表。

  • 支援調用系統Function和UDF。

  • 支援空間變數名稱替換,${project_name}${LD_name}替換為真實名稱。

  • 支援全域變數和本地變數。

  • 支援物理表DML和邏輯表DML。

  • 支援物理表DDL。

  • 支援對象鑒權。

hivec支援的方法

您可以通過使用以下代碼查看hivec的方法。

from dataphin import hivec

print(dir(hivec))

hivec與pyhive.hive.Cursor的同名方法一致:

  • 執行 SQL 陳述式execute

  • 擷取所有查詢結果fetchall

  • 擷取指定行數的查詢結果fetchmany

  • 擷取一行查詢結果fetchone

  • 關閉cursor和connectionclose

使用樣本

Hadoop計算引擎

通常在非Dataphin環境下,需要通過安裝PyHive後,使用import匯入hive包來串連操作Hive。範例程式碼如下:

# 載入包
from pyhive import hive

# 建立串連
conn = hive.connect(host = '100.100.***.100',      # HiveServer
                    port = 10000,                  # 連接埠 
                    username = 'xxx',           # 帳號
                    database = 'xxx',            # 資料庫
                    password = 'xxx')           # 密碼
                    
# 查詢
cursor = conn.cursor()
cursor.execute('select * from table limit 10')
for result in cursor.fetchall():
    print(result)
    
# 關閉串連
cursor.close()
conn.close()

在Dataphin中您可以直接在Python計算任務通過from dataphin import hivec匯入預置資源套件後操作Hive。範例程式碼如下:

# 匯入包
from dataphin import hivec

# 運行sql語句
hivec.execute("SELECT * FROM ${project_dev}.table WHERE ds != 0")

# 列印sql結果
for result in hivec.fetchall():
	print(result)

MaxCompute計算引擎

MaxCompute計算引擎下,可以在Python計算任務中通過from dataphin import odps匯入預置資源套件後操作MaxCompute。範例程式碼如下:

# 載入包
from dataphin import odps
 
# 運行sql語句
odps.run_sql('SELECT * FROM ${project_dev}.table WHERE ds != 0')

# 以下寫法可列印結果
with odps.execute_sql('select 1').open_reader() as reader:
    for record in reader:
        print(record)