rest - 如何在databricks笔记本任务中发送列表作为参数?

标签 rest lambda databricks

我正在使用Databricks Resi API 在现有集群中创建一个包含notebook_task 的作业,并获取job_id 作为返回。 然后我调用 run-now api 来触发作业。 在此步骤中,我想通过笔记本参数发送一个列表作为参数,这会抛出一个错误,指出“字段值预期为非数组”。

有什么方法可以将列表作为参数发送给作业?

我也尝试在 base_params 中发送列表参数,但出现相同的错误。

user_json={
                                "name": job_name,
                                "existing_cluster_id": cluster_id,
                                "notebook_task": {
                                                        "notebook_path": notebook_path
                                                    },
                                "email_notifications":{
                                "on_failure":[email_id]
                                },
                                "max_retries": 0,
                                "timeout_seconds": 3600
                                                }

response=requests.post('https://<databricks_uri>/2.0/jobs/create',headers=head,json=user_json,timeout=5, verify=False)

job_id=response.json()['job_id']

json_job={"job_id":job_id,"notebook_params":{"name":"john doe","my_list":my_list}}

response = requests.post('https://<databricks_uri>/2.0/jobs/run-now', headers=head, json=json_job, timeout=200, verify=False)

最佳答案

尚未找到任何 native 解决方案,但我的解决方案是将列表作为字符串传递并在另一端解析它:

json_job={"job_id":job_id,
          "notebook_params":{
                "name":"john doe",
                "my_list":"spam,eggs"
           }
}

然后在数据 block 中:

my_list=dbutils.widgets.get("my_list")
my_list=my_list.split(",")

适当注意特殊字符或例如转换为数字类型。

如果列表中的对象更为重要,那么在运行作业之前使用 CLI 或 API 将它们作为文件发送到 dbfs 可能是另一种值得探索的选择。

关于rest - 如何在databricks笔记本任务中发送列表作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56485226/

相关文章:

azure - Databricks 安装开放/公共(public) Azure Blob 存储

java - Jackson:如何反序列化我自己的类的实例字段

api - Values.lazy 上的 NoSuchMethodError( Jersey 2.5.1)

c# - lambda 表达式中的时间跨度

lambda - Java lambda 表达式如何引用自身?

google-cloud-platform - DataBricks + Kedro Vs GCP + Kubeflow Vs 服务器 + Kedro + Airflow

java - REST 调用以将大型结果集保存到可下载的 CSV

security - REST 认证 S3,如 hmac sha1 签名与对称数据加密

java - 与 Java Streams 并行循环?

python - 如何从 Azure Databricks Spark 中的 DataFrame 获取特定行和列