我在作业中定义了一个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)正确地打印数组。
但是,当我在转换中使用网格变量时,它不会获得加载到python脚本中的记录。
发布于 2021-07-22 20:58:51
到目前为止看起来还不错..在编排作业中,您可以使用Grid变量来包含所需的值。
检查如何将网格变量传递到转换作业中?
最好的方法是在Python脚本组件之后运行一个Run Transformation,并使用Set Grid Variables属性将somegridvar映射到您在Transformation Job自己的Grid变量中命名的列上。
您必须在业务流程作业运行的同一实例中执行此操作。如果您单独运行编排作业,稍后再单独运行转换作业,则所有变量都将恢复为其默认值。
https://stackoverflow.com/questions/68469066
复制相似问题