【问题标题】:Getting HTTP error 403 - invalid access token while trying to access cluster through Azure databricks获取 HTTP 错误 403 - 尝试通过 Azure 数据块访问集群时访问令牌无效
【发布时间】:2019-06-29 00:31:00
【问题描述】:

我正在尝试通过 python 脚本访问 Azure databricks spark 集群,该脚本将令牌作为通过 databricks 用户设置生成的输入,并调用 Get 方法来获取集群的详细信息以及集群 ID。

下面是代码sn-p。如图所示,我在中南区创建了一个集群。

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 .....}

当我在 google 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】:

这可能是由于您传递秘密时的编码问题。请查看此问题以及如何解决它。尽管他们为 AWS 提供了解决方案,但它也可能与 Azure 类似。您的秘密可能有“/”,您必须替换它。

上次更新中存在与“+”相关的已知问题 密钥中的字符。特别是,我们不再支持转义 '+' 变成 '%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

【讨论】:

  • 感谢您的回复。你有示例 python 代码来应用 secretKey.replace() 方法吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-08
  • 1970-01-01
  • 1970-01-01
  • 2016-09-21
  • 1970-01-01
  • 2016-09-09
  • 1970-01-01
相关资源
最近更新 更多