直接从azuredatabricks访问azuredevops git文件

a64a0gku  于 2021-07-13  发布在  Spark
关注(0)|答案(1)|浏览(396)

我们有一个csv文件存储在ado(azuredevops)git存储库中。我运行了azuredatabricks集群,在工作区中我有一个python代码来读取这个csv文件并将其转换为sparkDataframe。但每次文件发生更改时,我都必须手动从adogit下载并上传到databricks工作区。我使用下面的命令来验证文件是否uploaded:-

dbutils.fs.ls ("/FileStore/tables")

它列出了我的文件。然后,我使用以下python代码将此csv转换为sparkDataframe:

file_location = "/FileStore/tables/MyFile.csv"
file_type = "csv"

# CSV options

infer_schema = "true"
first_row_is_header = "true"
delimiter = ","

# The applied options are for CSV files. For other file types, these will be ignored.

df = spark.read.format(file_type) \
  .option("inferSchema", infer_schema) \
  .option("header", first_row_is_header) \
  .option("sep", delimiter) \
  .load(file_location)

因此,每次ado git存储库中的文件发生更改时都会涉及到这个手动步骤。有没有python函数可以直接指向ado git主分支中的文件副本?

d5vmydt9

d5vmydt91#

你有两个选择,取决于什么对你来说更简单:
使用azuredevopspythonapi访问git树中的文件(在api中称为item)。因为此文件只能从驱动程序节点访问,所以您需要使用 dbutils.fs.cp 将文件从驱动程序节点复制到 /FileStore/tables 在git存储库中设置一个构建管道,该管道仅在提交特定文件时触发,如果发生更改,请使用databricks cli( databrics fs cp ... 命令)将文件直接复制到dbfs中。这里有一个例子,不完全做你想做的,但它可以作为灵感。

相关问题