由于 "Set is not JSON serializable",气流任务失败
airflow task is failing because of "Set is not JSON serializable"
我得到了一个在其某些任务中使用 BigQuery 运算符的 DAG。
有一个这样的任务一直失败,说我的配置参数其实是一个集合,无法序列化为JSON.
但是,我不明白为什么我会收到错误消息,因为我没有看到任何可以将此 dict 变成集合的东西。
some_task = BigQueryInsertJobOperator(
task_id='some_task',
configuration={
"query": {
"query": "{% include 'sql/some_sql_script.sql' %}",
"useLegacySql": False,
},
"destinationTable": {
some_dest_table.ref #I have access to this value.
}
},
params={
'some_param': some_param.ref,
'some_other_param': some_other_param.ref,
'yet_other_param': yet_other_param.ref
}
)
检查呈现的模板时,我可以看到配置“渗入”到实际的 sql 脚本中。即
"config={query select foo from bar"
日志中的实际错误是 TypeError: Object of type set is not JSON serializable
看起来问题出在 destinatonTable 字段上。把花括号放在那里。你用花括号把值包起来,不提供键——这样就形成了一个集合
我得到了一个在其某些任务中使用 BigQuery 运算符的 DAG。 有一个这样的任务一直失败,说我的配置参数其实是一个集合,无法序列化为JSON.
但是,我不明白为什么我会收到错误消息,因为我没有看到任何可以将此 dict 变成集合的东西。
some_task = BigQueryInsertJobOperator(
task_id='some_task',
configuration={
"query": {
"query": "{% include 'sql/some_sql_script.sql' %}",
"useLegacySql": False,
},
"destinationTable": {
some_dest_table.ref #I have access to this value.
}
},
params={
'some_param': some_param.ref,
'some_other_param': some_other_param.ref,
'yet_other_param': yet_other_param.ref
}
)
检查呈现的模板时,我可以看到配置“渗入”到实际的 sql 脚本中。即
"config={query select foo from bar"
日志中的实际错误是 TypeError: Object of type set is not JSON serializable
看起来问题出在 destinatonTable 字段上。把花括号放在那里。你用花括号把值包起来,不提供键——这样就形成了一个集合