[英]NameError: name 'datetime' is not defined [while running 'ChangeDataType DistrictAllocationAndListStore-ptransform-570']
[英]NameError: name 'funt1' is not defined [while running 'format data-ptransform-40']
我正在运行数据流管道以加载到 biqquery 但出现以下错误
wrapper = lambda x: [fn(x)]
文件“/home/mprabakaran/mergefile.py”,第 93 行,在 <lambda> NameError: name 'funt1' is not defined [while running 'format data-ptransform-40']
我在我的代码中定义了 function 'funt1'
def funt1(row):
data={}
data['ID']=row[0]
if row[1]['gender']:
data['gender']=row[1]['gender'][0]
else:
data['gender']=None
if row[1]['weight']:
data['weight']=row[1]['weight'][0]
else:
data['weight']=''
#print(data)
return data
下面是管道代码的一部分
data = (({'gender': gender_data, 'weight': weight_data})
| 'Merge' >> beam.CoGroupByKey()
| 'format data' >> beam.Map(lambda x: funt1(x)) | beam.Map(print) )
beam.io.WriteToBigQuery(
table_spec2,
dataset="nyb_data",
project="toyota-poc-340710",
# known_args.output,
# schema='id:INTEGER,gender:STRING,wieght:STRING',
write_disposition=beam.io.BigQueryDisposition.WRITE_TRUNCATE,
create_disposition=beam.io.BigQueryDisposition.CREATE_IF_NEEDED
)
不知道我错过了什么。 请帮我解决这个问题。
您必须确保包含 function funt1
的 Python 模块已打包并暂存在数据流虚拟机中,以便在运行时可用。 请在此处查看说明。
另一种选择是设置save_main_session选项,这会导致 main session(包括加载到会话的函数)可供工作人员使用,但这可能不适用于所有情况。
我在 class 中定义了funt1
function 并调用如下。
| '格式化数据' >> beam.Map(lambda x: dataingestion .funt1(x)) | beam.Map(打印) )
这里的数据摄取是 class。它对我有用。 感谢您回复我的查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.