問題
長時間運行的工作,比如流工作,當使用48小時後失敗dbutils.secrets.get ()(AWS|Azure|GCP)。
例如:
% python streamingInputDF1 =(火花.readStream .format .table(“δ”)(“default.delta_sorce”)) def writeIntodelta (batchDF batchId): table_name = dbutils.secrets.get (“secret1”、“table_name”) batchDF = batchDF.drop_duplicates () batchDF.write.format .mode(“δ”)(“追加”).saveAsTable (table_name) streamingInputDF1 \ .writeStream \ .format(“δ”)\ .option (“checkpointLocation”、“dbfs: / tmp / delta_to_delta”) \ .foreachBatch (writeIntodelta) \ .outputMode(“追加”)\ .start ()
48小時後這個示例代碼返回一個錯誤。
<頭> < meta http-equiv =“- type”內容= " text / html; charset = utf - 8 " / > <標題>錯誤403無效的訪問令牌。< /名稱> < /頭> <身體> < h2 > HTTP錯誤403 < / h2 > < p >訪問/ api / 2.0 /機密/問題。原因:< pre >無效的訪問令牌。< / pre > < / p > < /身體>
導致
磚公用事業(dbutils) (AWS|Azure|GCP48小時後)令牌到期。
這是通過設計。
解決方案
你不能延長生命的令牌。
工作時間超過48小時完成不應該使用dbutils.secrets.get ()。