而试图通过Azure的databricks访问集群无效的访问令牌 - 获取HTTP错误403

问题描述 投票:0回答:1

我想通过一个python脚本这需要令牌通过databricks用户设置和调用get方法来获得非常久远的集群ID集群的细节产生的输入访问Azure的databricks火花集群。

下面的是代码片段。如图所示,我已经创造了southcentralus区集群。

import requests
headers = {"Authorization":"Bearer dapiad************************"}
data=requests.get("https://southcentralus.azuredatabricks.net/api/2.0/clusters/get?cluster_id=**************",headers=headers).text
print data

预期结果应该给集群如的全部细节。 {"cluster_id":"0128-******","spark_context_id":3850138716505089853,"cluster_name":"abcdxyz","spark_version":"5.1.x-scala2.11","spark_conf":{"spark.databricks.delta.preview.enabled":"true"},"node_type_id" and so on .....}

当我执行对谷歌colaboratory的代码,而同样是不符合我的本地IDE即怠速工作上面的代码工作。它提供了HTTP 403如下说明的错误:

<p>Problem accessing /api/2.0/clusters/get. Reason:
<pre>    Invalid access token.</pre></p>

谁能帮我解决这个问题?我卡在这一部分,无法通过API来访问群集。

python apache-spark access-token http-error azure-databricks
1个回答
0
投票

这可能是由于当你通过秘密编码问题。请看看这个问题,以及如何解决它。尽管分辨率他们已经给了AWS,也可能是类似一个为天青为好。你的秘密可能是具有“/”,你必须更换。

有一个在最后更新的密钥相关的“+”字符的已知问题。特别是,我们不再支持逃脱“+”到“%2B”,其中一些URL编码库做。

编码您的AWS密钥的当前最佳实践的方法就是

secretKey.replace("/","%2F")

样品python脚本给出如下:

New_Secret_key = "MySecret/".replace("/","%2F")

https://forums.databricks.com/questions/6590/s3serviceexception-raised-when-accessing-via-mount.html

https://forums.databricks.com/questions/6621/responsecode403-responsemessageforbidden.html

© www.soinside.com 2019 - 2024. All rights reserved.