- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们正在尝试运行一个带有 2 个任务的简单 DAG,这些任务将通过 xcom 进行数据通信。
DAG 文件:
from __future__ import print_function
import airflow
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from airflow.operators.python_operator import PythonOperator
args = {
'owner': 'airflow',
'start_date': airflow.utils.dates.days_ago(2)
}
dag = DAG(
'example_xcom',
schedule_interval="@once",
default_args=args)
value_1 = [1, 2, 3]
def push(**kwargs):
# pushes an XCom without a specific target
kwargs['ti'].xcom_push(key='value from pusher 1', value=value_1)
def puller(**kwargs):
ti = kwargs['ti']
v1 = ti.xcom_pull(key=None, task_ids='push')
assert v1 == value_1
v1 = ti.xcom_pull(key=None, task_ids=['push'])
assert (v1) == (value_1)
push1 = PythonOperator(
task_id='push', dag=dag, python_callable=push)
pull = BashOperator(
task_id='also_run_this',
bash_command='echo {{ ti.xcom_pull(task_ids="push_by_returning") }}',
dag=dag)
pull.set_upstream(push1)
[2018-09-27 16:55:33,431] {base_task_runner.py:98} INFO - Subtask: [2018-09-27 16:55:33,430] {models.py:189} INFO - Filling up the DagBag from /home/airflow/gcs/dags/xcom.py
[2018-09-27 16:55:33,694] {base_task_runner.py:98} INFO - Subtask: Traceback (most recent call last):
[2018-09-27 16:55:33,694] {base_task_runner.py:98} INFO - Subtask: File "/usr/local/bin/airflow", line 27, in <module>
[2018-09-27 16:55:33,696] {base_task_runner.py:98} INFO - Subtask: args.func(args)
[2018-09-27 16:55:33,697] {base_task_runner.py:98} INFO - Subtask: File "/usr/local/lib/python2.7/site-packages/airflow/bin/cli.py", line 392, in run
[2018-09-27 16:55:33,697] {base_task_runner.py:98} INFO - Subtask: pool=args.pool,
[2018-09-27 16:55:33,698] {base_task_runner.py:98} INFO - Subtask: File "/usr/local/lib/python2.7/site-packages/airflow/utils/db.py", line 50, in wrapper
[2018-09-27 16:55:33,699] {base_task_runner.py:98} INFO - Subtask: result = func(*args, **kwargs)
[2018-09-27 16:55:33,699] {base_task_runner.py:98} INFO - Subtask: File "/usr/local/lib/python2.7/site-packages/airflow/models.py", line 1492, in _run_raw_task
[2018-09-27 16:55:33,701] {base_task_runner.py:98} INFO - Subtask: result = task_copy.execute(context=context)
[2018-09-27 16:55:33,701] {base_task_runner.py:98} INFO - Subtask: File "/usr/local/lib/python2.7/site-packages/airflow/operators/python_operator.py", line 89, in execute
[2018-09-27 16:55:33,702] {base_task_runner.py:98} INFO - Subtask: return_value = self.execute_callable()
[2018-09-27 16:55:33,703] {base_task_runner.py:98} INFO - Subtask: File "/usr/local/lib/python2.7/site-packages/airflow/operators/python_operator.py", line 94, in execute_callable
[2018-09-27 16:55:33,703] {base_task_runner.py:98} INFO - Subtask: return self.python_callable(*self.op_args, **self.op_kwargs)
[2018-09-27 16:55:33,704] {base_task_runner.py:98} INFO - Subtask: File "/home/airflow/gcs/dags/xcom.py", line 22, in push
[2018-09-27 16:55:33,707] {base_task_runner.py:98} INFO - Subtask: kwargs['ti'].xcom_push(key='value from pusher 1', value=value_1)
[2018-09-27 16:55:33,708] {base_task_runner.py:98} INFO - Subtask: KeyError: 'ti'
最佳答案
添加 provide_context: True
默认参数。这需要define **kwargs
.
args = {
'owner': 'airflow',
'start_date': airflow.utils.dates.days_ago(2),
'provide_context': True
}
provide_context (bool) – if set to true, Airflow will pass a set of keyword arguments that can be used in your function. This set of kwargs correspond exactly to what you can use in your jinja templates. For this to work, you need to define **kwargs in your function header.
关于airflow - key 错误 : 'ti' in Apache Airflow xcom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52541911/
是否可以在需要参数的另一个程序中执行一个程序? (没有内联) 例如 ________________ - PROGRAM:ADD - :Prompt A,B - :A+B>C _________
在大多数编程语言中,您可以在输出过程中将字符串与变量混合和匹配。但是,我似乎找不到找到这种方法的好方法。这是我的代码: Prompt A,B √(A^2+B^2)->C If iPart(C)≠C T
我正在尝试将字符串转换为 TI-84 上的变量。 例如, "XYZ"→Str0 fnInt(X²,sub(Str0,1,1),0,1)→A 但它不让我。 我知道这似乎是一种非常低效的方法(为什么不直接
我一直在寻找在 TIBASIC 中制作一个程序,该程序可以评估代码正在运行的计算器类型,无需汇编。因为我认为没有任何东西可以从 about 屏幕获取信息。这是我想出的一段代码: :ClrDraw :T
运行以下代码时出现语法错误: Prompt A,B,C B^2-4*A*C→Δ If Δ IS(0) Then (-B-√(Δ))/(2*A)→E (-B+√(Δ))/(2*A)→F End 这段代码
所以我制作了一个 TI-BASIC 程序,该程序伪造计算器的主屏幕,但故意给出错误的数学方程式答案。这是代码: :ClrHome :Lbl 1 :Input "",A :Disp rand :Goto
我有以下使用 C# 6 的泛型类: public class IncludeMapper { private readonly Dictionary> _properties = new Dict
在 TI-BASIC 编程语言(特别是 TI-84+)中,您如何创建输入表单,例如包含在 TI-84+ 上的默认应用程序中的表单。 此处包含的图像显示了我正在尝试创建的示例:在执行函数之前,您可以滚动
基本上,我只希望 TI basic 在程序结束时不显示“完成”行。我怎样才能做到这一点? 谢谢, 最佳答案 您可以通过在程序末尾写入一个空白值来完成此操作: :ClrHome:" 更多详情:http:
我想知道如何制作一些如果 X=5 且 Y=2 的东西,然后让它输出类似的东西Hello 2 World 5。 在Java中我会这样做String a = "Hello"+ Y + "World"+ X
如果已知两点,我有一个代码可以计算直线的斜率;但是,它仅返回十进制格式的斜率。我希望能够选择将小数转换为分数。这是我到目前为止所做的: :Disp " " :Input "PAIR 1: ",T :I
我有这个简单的 Titanium js 脚本。 app.js var win = Ti.UI.createWindow(); var webview = Ti.UI.createWebView
我正在使用 appcelerator.com 的 Titanium 来创建 iOS 应用程序。 我同时使用 slider 和开关。 这两个官方示例都展示了如何创建这些东西,以及如何改变它们的状态,但令
我的 TI-84 Plus C 银版计算器上有一个 TI BASIC 的小代码,可以根据患者的体重确定正确的药物剂量。例如,如果每千克患者体重服用 5 毫克阿司匹林(事实并非如此),那么代码应该告诉我
我在理解如何运行 GIZA++ 的基础知识时遇到问题。 我通过 StackOverflow ( Is there a tutorial about giza++?) 上的讨论以及人们在那里提供的链接进
我最近买了一台TI-84 Plus CE,一直在用TI-BASIC编写程序。 我正在尝试制作一个简单的文本编辑器,我需要将字符代码转换为字符。但是,char()命令好像不存在? 请帮忙! 最佳答案 我
数字变量是否遵循 TI 计算器上的记录标准? 我真的很惊讶地注意到我的 TI 83 Premium CE 测试实际上返回了 true(即 1): 0.1 -> X 0.1 -> Y 0.01 -> Z
我今天在数学课上在 TI-84 上玩编程,我决定尝试编写一个程序来读取方程,然后用它做一些事情。但是我在阅读方程式时遇到了麻烦。我试过 :Prompt Y1但是当我尝试使用该程序时,我一直收到数据类型
我想制作一个可以记录语音并对其进行转换的程序,因此听起来好像来自德州TI-99。您对此有什么好的想法和资源吗? 最佳答案 那些旧的语音合成器大多数都是直接在芯片内构建的。也许您可以找到听起来像芯片的合
我正试图让我的头脑围绕J。在 easy-j.pdf(可用 here ;第 19 页)介绍中有这个钩子(Hook): ti=.{.(*i.)}. NB. ti=times index gener
我是一名优秀的程序员,十分优秀!