【问题标题】:how to store all the variables from one notebook in a file and use the same variables in other notebooks in ADF?如何将一个笔记本中的所有变量存储在一个文件中,并在 ADF 中的其他笔记本中使用相同的变量?
【发布时间】:2022-08-11 18:36:32
【问题描述】:

我在 ADF 中有一个笔记本,它依赖于获取元数据阶段来获取文件名。 获取这些文件名后,我将在指定变量中分配每个文件名的路径。

我想在 ADF 中的其他多个笔记本中使用这些变量

如何做到这一点? 我无法在所有其他笔记本中运行父笔记本,因为父笔记本依赖于获取元数据阶段并使用这些变量

  • 您的变量是字符串类型(路径)还是字符串列表(路径列表)?请提供这些变量的样本数据
  • 我的变量是字符串类型(路径)

标签: pyspark azure-data-factory azure-databricks


【解决方案1】:

您可以将变量的所有值从主笔记本写入 json 或文本文件,然后读取文件以从不同的笔记本访问这些值。

  • 以下是相同的演示。我有 3 个变量,file1, file2 and file3(包含文件路径的字符串类型)。
print(file1,file2,file3,sep='\n')

#output
dbfs:/mnt/repro/sample_1.csv
dbfs:/mnt/repro/sample_2.csv
dbfs:/mnt/repro/sample_3.csv
  • 通过硬编码键名创建一个 JSON 文件(如果变量名无关紧要,您可以简单地创建一个包含由, 分隔的所有文件的字符串)
#data for creating a json file

my_json = {"file1": file1,"file2": file2, "file3":file3}
#{'file1': 'dbfs:/mnt/repro/sample_1.csv', 'file2': 'dbfs:/mnt/repro/sample_2.csv', 'file3': 'dbfs:/mnt/repro/sample_3.csv'}


#data for creating a txt file

text_data = ', '.join([file1,file2,file3])
#dbfs:/mnt/repro/sample_1.csv, dbfs:/mnt/repro/sample_2.csv, dbfs:/mnt/repro/sample_3.csv
  • 现在您可以使用以下方式将此数据写入任何所需的路径。
#for json

json_as_string = json.dumps([my_json])
f = open("<path>/variables.json", "w")
f.write(json_as_string)
f.close()

#for text
f2 = open("<path>/var.txt","w")
f2.write(text_data)
  • 现在,您可以通过以下方式从任何笔记本中读取这些文件
#for json
f = open("<path>/variables.json", "r")
data = json.load(f)[0]   #data is a dictionary, key value pair

#for text
f2 = open("<path>/var.txt","r")
data = f2.read() #data is string. use split to get list of required file paths

【讨论】:

    猜你喜欢
    • 2022-10-19
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 2017-03-18
    相关资源
    最近更新 更多