azure - Azure ML 中的参数化 SQL 查询
问题描述
背景:似乎有一种方法可以DataPath
使用PipelineParameter
https://github.com/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/machine-learning-pipelines/intro-to-pipelines/aml-pipelines进行参数化-展示数据路径和管道参数.ipynb
但我想用 PipelineParameter 参数化我的 SQL 查询,例如,用这个查询
sql_query = """
SELECT id, foo, bar FROM baz
WHERE baz.id BETWEEN 10 AND 20
"""
dataset = Dataset.Tabular.from_sql_query((sql_datastore, sql_query))
我想使用 PipelineParameter 来参数化10
和20
asparam_1
和param_2
. 这可能吗?
解决方案
找到了一种方法来做到这一点:
将您的参数传递给 PythonScriptStep
param_1 = PipelineParameter(name='min_id', default_value=5)
param_2 = PipelineParameter(name='max_id', default_value=10)
sql_datastore = "sql_datastore"
step = PythonScriptStep(script_name='script.py', arguments=[param_1, param_2,
sql_datastore])
在脚本.py
min_id_param = sys.argv[1]
max_id_param = sys.argv[2]
sql_datastore_name = sys.argv[3]
query = """
SELECT id, foo, bar FROM baz
WHERE baz.id BETWEEN {} AND {}
""".format(min_id_param, max_id_param)
run = Run.get_context()
sql_datastore = Datastore.get(run.experiment.workspace, sql_datastore_name)
dataset = Dataset.Tabular.from_sql_query((sql_datastore, query))
推荐阅读
- java - 当用户答错问题时,我该如何结束这个游戏?
- php - Laravel7 CORS:被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:没有“Access-Control-Allow-Origin”
- react-native - React Navigation 5.x 嵌套导航抽屉未从菜单按钮打开
- go - 如何将 Go 的 GC CPU 使用率提高到 25% 以上?
- fortran - 即使某些等级不参与,MPI_IBcast 是否也能保证发送
- python - 当我尝试从 PIL 调整 img 的大小时,不能将序列乘以“float”类型的非整数
- javascript - 如何在括号编辑器中禁用 javascript 代码提示?
- android - android:onClick 按钮工作缓慢
- ios - 从单独的类运行方法时返回 Nil
- python - 用 True/False 替换 pandas 数据框所有列的整数