如何解决Matillion 网格变量未通过 updateGridVariable 更新
我在工作中定义了一个 GridVariable(使用管理网格变量)。然后我有一个创建数据框的python代码。然后我将数据帧的内容附加到一个数组中,然后更新我的网格变量。但是,当我将网格变量用于转换作业时,内容不会更新。
这是我的代码片段
for obj in objs:
s3file=s3_client.get_object(Bucket = 'somebucket',Key = obj.key)
tbl = pd.read_csv(s3file['Body'])
row_count=len(tbl.index)
for i in range(row_count) :
record=[]
record.append(tbl.at[i,'a'])
record.append(tbl.at[i,'b'])
record.append(tbl.at[i,'c'])
record.append(tbl.at[i,'d'])
record.append(tbl.at[i,'e'])
record.append(tbl.at[i,'f'])
record.append(tbl.at[i,'g'])
record.append(tbl.at[i,'h'])
record.append(tbl.at[i,'i'])
record.append(tbl.at[i,'j'])
record.append(tbl.at[i,'k'])
record.append(tbl.at[i,'l'])
record.append(tbl.at[i,'m'])
record.append(tbl.at[i,'n'])
record.append(tbl.at[i,'o'])
record.append(tbl.at[i,'p'])
record.append(tbl.at[i,'q'])
record.append(tbl.at[i,'r'])
record.append(tbl.at[i,'s'])
record.append(tbl.at[i,'t'])
record.append(tbl.at[i,'u'])
record.append(tbl.at[i,'v'])
record.append(tbl.at[i,'w'])
record.append(tbl.at[i,'x'])
record.append(tbl.at[i,'y'])
record.append('something')
array.append(record)
context.updateGridVariable('somegridvar',array)
print(len(array))
arr2=context.getGridVariable('somegridvar')
print(len(arr2))
print(arr2)
print(len(arr2)) 行打印正确的记录数 print(arr2) 正确打印数组。
但是当我在转换中使用 grid 变量时,它不会在 python 脚本中加载记录。
解决方法
目前看起来不错.. 在 Orchestration Job 中,您已经获得了包含所需值的网格变量。
检查您如何将网格变量传递到转换作业中?
最好的方法是使用运行转换来遵循 Python 脚本组件,并使用设置网格变量属性将 somegridvar 映射到您在转换作业自己的网格变量中命名的列上。
您必须从编排作业运行的相同实例中执行此操作。如果您单独运行编排作业,然后稍后单独运行转换作业,则所有变量都将恢复为其默认值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。