DataWorks想在mapreduce中指定两个表的所有分区,用 app_id=’‘不可以,有什么办法吗?job);InputUtils.addTable(TableInfo.builder().tableName(“middleoffice_report_transaction_t_wideorder_dws”).partSpec(“app_id=’‘”).build(), job);
OutputUtils.addTable(TableInfo.builder().tableName(“middleoffice_report_transaction_t_wideorder_day_dws”).partSpec(“app_id=’*'”).build(), job);
DataWorks想在mapreduce中指定两个表的所有分区,有什么办法吗?[阿里云DataWorks]
「点点赞赏,手留余香」
还没有人赞赏,快来当第一个赞赏的人吧!
在DataWorks中,如果你想在MapReduce作业中指定两个表的所有分区,你可以使用
InputUtils
和OutputUtils
类的addTable()
方法。但是,你需要确保你在调用这个方法时正确地指定了分区信息。根据你的代码片段,我注意到你在为输入表 “middleoffice_report_transaction_t_wideorder_dws” 指定分区时使用了
partSpec("app_id=')
。这可能意味着你想要选择所有分区,但在这种情况下,你实际上选择了包含空字符串作为其 “app_id” 分区值的所有分区。如果你想要选择所有分区,你应该将
partSpec()
的参数更改为partSpec("*")
或者直接省略这个参数。例如:在 DataWorks 中,您可以使用
InputUtils.addTable
和OutputUtils.addTable
方法来指定 MapReduce 作业的输入表和输出表。这两个方法都需要一个TableInfo
参数,其中包含表名和分区信息。然而,由于 Spark SQL 不支持
app_id='
这种方式来指定所有分区,所以您不能直接在 DataWorks 中使用这种方式。取而代之,您可以使用以下两种方法之一来解决这个问题:HiveContext
创建一个临时视图,然后再使用这个视图作为 MapReduce 作业的输入表。例如,您可以先执行以下命令:然后,您可以将这个临时视图作为输入表传递给 MapReduce 作业:
然后,您可以将新创建的表作为输入表传递给 MapReduce 作业:
0