问题
长时间运行的工作,比如流工作,当使用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 ()。