直接从Azure数据库访问Azure DevOps Git文件

2024-06-11 08:14:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有一个CSV文件存储在ADO(Azure DevOps)Git存储库中。我有Azure DataRicks集群在运行,在工作区中我有一个python代码来读取这个CSV文件并将其转换为spark数据帧。但每次文件发生更改时,我都必须手动从ADOGIT下载它并上传到Databricks工作区。我使用以下命令验证文件是否已上载:-

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

它列出了我的文件。然后,我使用以下Python代码将此CSV转换为Spark数据帧:

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函数可以直接指向adogit主分支中的文件副本


Tags: 文件csv数据代码gittableslocation手动
1条回答
网友
1楼 · 发布于 2024-06-11 08:14:38

您有两种选择,这取决于您更简单的选择:

  1. 使用Azure DevOps Python API访问Git树中的file (called item in API)。因为这个文件只能从驱动程序节点访问,所以您需要使用dbutils.fs.cp将文件从驱动程序节点复制到/FileStore/tables
  2. 在您的Git存储库中设置一个构建管道,该管道仅在提交特定文件时触发,如果发生更改,请使用Databricks CLIdatabrics fs cp ...命令)将文件直接复制到DBFS中。这里有一个example并不是完全按照你想要的做,但它可以作为灵感

相关问题 更多 >