当我想用2个上下文变量进行查询时,我的工作有问题。我用我的工作和我的组件附上照片,当我运行这份工作时,它给了我这个错误:
Exception in component tMysqlInput_1 (facebook_amazon_us)
java.lang.NullPointerException
at mava.facebook_amazon_us_0_1.facebook_amazon_us.tWaitForFile_1Process(facebook_amazon_us.java:2058)
at mava.facebook_amazon_us_0_1.facebook_amazon_us.tMysqlConnection_1Process(facebook_amazon_us.java:798)
at mava.facebook_amazon_us_0_1.facebook_amazon_us.runJobInTOS(facebook_amazon_us.java:5363)
at mava.facebook_amazon_us_0_1.facebook_amazon_us.main(facebook_amazon_us.java:5085)
我想在这份工作中做什么:我有一个包含多列的csv文件。第一个叫做Reporting_Starts。我希望从该列获得第一个注册,并将其放入查询中,以便选择:
SELECT * FROM my_table WHERE MONTH(my_table.Reporting_Starts)='"+context.month+"'.
我无法理解为什么我的tJava_4看到变量而tMysqlInput看不到。
在我的tJava_4中,我有以下代码:
System.out.println(context.month);[My job][1][after running the job][1][tJava_3][1][tJavaRow_1][1][tMysqlInput_1 query][1]
如果您需要有关该工作的任何其他信息,请与我们联系。
谢谢!
答案 0 :(得分:0)
使用你拥有的所有迭代链接,我猜测代码没有按照你期望的顺序执行。你能否做出以下改变:
从tFileList_1
中删除所有迭代链接
将您的工作重组为:
tMysqlConnection_1
|
OnSubjobOk
|
tWaitForFile_1
|
Iterate
|
tFileList_1 -- Iterate -- tJava_3
|
OnSubjobOk
|
tFileInputDelimited_1 -- Main -- tJavaRow_1
|
OnSubjobOk
|
tMysqlInput -- tMap -- tMysqlOutput (delete mode, set a column as delete key)
|
tFileInputDelimited -- tMap -- tMysqlOutput (insert csv)
|
OnSubjobOk
|
tFileCopy
仅使用此部分进行首次测试。如果它有效,你可以添加剩下的工作。