我正在尝试建立一个调用 databricks 笔记本的 AWS lambda 函数(在 s3 触发器的情况下)。我知道我必须在 lambda 函数(python)代码中使用 databricks 的 Jobs API 来使用以下命令发出 POST 请求:运行提交函数的 JSON 负载。
虽然文档不是很清楚,但我能够调用测试脚本,并在检查响应文本时看到 databricks 登录页面 html 代码,这意味着它没有经过身份验证。
我确实阅读了用户令牌,但我不确定如何将它们纳入身份验证。
任何以其他方式完成此工作或帮助我使用 user_tokens 进行身份验证以便流程到达笔记本的执行而不是在身份验证页面停止的帮助都会有所帮助。
提前致谢。
代码示例:
import requests
import json
job_payload = {
"run_name": 'just_a_run',
"existing_cluster_id": '****',
"notebook_task":
{
"notebook_path": 'https://databricks.cloud.company.com/****'
}
}
resp = requests.post('https://databricks.cloud.company.com/2.0/jobs/runs/submit', json=job_payload)
print(resp.status_code)
print(resp.text)
200
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta http-equiv="Content-Language" content="en"/>
<title>Databricks - Sign In</title>
<meta name="viewport" content="width=960">
<link rel="stylesheet" href="/login/bootstrap.min.css">
<link rel="icon" type="image/png" href="login/favicon.ico" />
<meta http-equiv="content-type" …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 databricks 中的 round() 函数将一些浮点值舍入为 2 位数字。然而,databricks python 并不像普通 python 那样工作。
如果有的话请帮我分析一下原因和解决办法。
lis = [-12.1334, 12.23433, 1.2343, -104.444]
lis2 = [round(val,2) for val in lis]
print(lis2)
Run Code Online (Sandbox Code Playgroud)
TypeError: Invalid argument, not a string or column: -12.1334 of type <type 'float'>. For column literals, use 'lit', 'array', 'struct' or 'create_map' function.
Run Code Online (Sandbox Code Playgroud)