這很重要
Azure Data Lake Analytics 於 2024 年 2 月 29 日淘汰。 透過此公告深入了解。
針對數據分析,您的組織可以使用 Azure Synapse Analytics 或 Microsoft Fabric。
先決條件
開始之前,請確定 Python 延伸模組已安裝在 Azure Data Lake Analytics 帳戶中。
- 在 Azure 入口網站中流覽至 Data Lake Analytics 帳戶
- 在左側功能表中,於 [ 開始使用] 底下選取 [範例腳本]
- 選取 [安裝 U-SQL 擴充功能 ],然後 選取 [確定]
概觀
適用於U-SQL的 Python 延伸模組可讓開發人員執行 Python 程式代碼的大量平行執行。 下列範例說明基本步驟:
-
REFERENCE ASSEMBLY使用語句來啟用 U-SQL 腳本的 Python 擴充功能 - 使用
REDUCE操作來基於索引鍵分區輸入數據 - 適用於U-SQL的 Python 延伸模組包含內建歸納器 (
Extension.Python.Reducer) ,可在指派給歸納器的每個頂點上執行 Python 程式代碼 - U-SQL 腳本包含內嵌的 Python 程式代碼,其具有稱為
usqlml_main的函式,可接受 pandas DataFrame 做為輸入,並傳回 pandas DataFrame 做為輸出。
REFERENCE ASSEMBLY [ExtPython];
DECLARE @myScript = @"
def get_mentions(tweet):
return ';'.join( ( w[1:] for w in tweet.split() if w[0]=='@' ) )
def usqlml_main(df):
del df['time']
del df['author']
df['mentions'] = df.tweet.apply(get_mentions)
del df['tweet']
return df
";
@t =
SELECT * FROM
(VALUES
("D1","T1","A1","@foo Hello World @bar"),
("D2","T2","A2","@baz Hello World @beer")
) AS date, time, author, tweet );
@m =
REDUCE @t ON date
PRODUCE date string, mentions string
USING new Extension.Python.Reducer(pyScript:@myScript);
OUTPUT @m
TO "/tweetmentions.csv"
USING Outputters.Csv();
Python 如何與 U-SQL 整合
資料類型
- 來自 U-SQL 的字串和數值資料行會在 Pandas 和 U-SQL 之間進行 as-is 轉換。
- U-SQL Null 會從 Pandas
NA值來回轉換
模式
- U-SQL 不支援 Pandas 中的索引向量。 Python 函式中的所有輸入數據框架一律會有從 0 到數據列數減 1 的 64 位數值索引。
- U-SQL 資料集不能有重複的數據行名稱
- U-SQL資料集的非字串欄位名稱。
Python 版本
僅支援 Python 3.5.1(針對 Windows 編譯)。
標準 Python 模組
包含所有標準 Python 模組。
其他 Python 模組
除了標準 Python 連結庫,也包含數個常用的 Python 連結庫:
- 熊貓
- numpy(數值計算套件)
- numexpr
例外狀況訊息
目前,Python 程式碼中的異常會顯示為通用節點錯誤。 未來,U-SQL 作業錯誤訊息會顯示 Python 例外狀況訊息。
輸入和輸出大小限制
每個頂點都有指派的記憶體數量有限。 目前,AU 的限制為 6 GB。 由於輸入和輸出 DataFrame 必須存在於 Python 程式代碼的記憶體中,輸入和輸出的總大小不能超過 6 GB。