如何在databricks中按计划运行spark(python)etl管道

n53p2ov0  于 2021-05-18  发布在  Spark
关注(0)|答案(1)|浏览(411)

我有一个databricks笔记本(spark-python),它从s3读取数据,在完成一些etl工作后,将结果写入s3。现在我想在一个时间表上运行这个代码 .py 脚本,而不是笔记本。我希望运行python脚本的原因是它使版本控制更容易
我知道我需要在databricks中创建一个按计划运行的作业。但看起来databricks作业只能运行 JAR (scala)或 notebook . 我看不到运行python脚本的方法。
我错过什么了吗?

mlmc2os5

mlmc2os51#

不幸的是,这个功能目前在databricks ui中不可用,但是可以通过restapi访问。您需要使用sparkpythontask数据结构。
您可以在官方文档-jobs api示例中找到这个示例。

curl -n -X POST -H 'Content-Type: application/json' -d \
'{
  "name": "SparkPi Python job",
  "new_cluster": {
    "spark_version": "7.3.x-scala2.12",
    "node_type_id": "Standard_D3_v2",
    "num_workers": 2
  },
  "spark_python_task": {
    "python_file": "dbfs:/pi.py",
    "parameters": [
      "10"
    ]
  }
}' https://<databricks-instance>/api/2.0/jobs/create


您可以使用数据工厂在azuredatabricks上执行jar和python脚本。
reference:execute jars 以及使用数据工厂的azure databricks上的python脚本

相关问题