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