Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 具有多个输入的AWS数据管道活动_Variables_Amazon Web Services_Input_Hive_Amazon Data Pipeline - Fatal编程技术网

Variables 具有多个输入的AWS数据管道活动

Variables 具有多个输入的AWS数据管道活动,variables,amazon-web-services,input,hive,amazon-data-pipeline,Variables,Amazon Web Services,Input,Hive,Amazon Data Pipeline,作为AmazonAWS数据管道的一部分,我有一个配置单元活动,使用两个未老化的S3数据节点作为输入。我想要的是能够在活动上设置两个脚本变量,每个变量都指向一个输入数据节点,但我无法获得正确的语法。使用单个输入,我可以编写以下内容,并且工作正常: INPUT_FOO=#{input.directoryPath} 当我添加第二个输入时,我遇到了一个如何引用它们的问题,因为它们现在是一个输入数组,如下面的管道定义所示。基本上,我想实现以下目标,但无法找到正确的语法: INPUT_FOO=#{inpu

作为AmazonAWS数据管道的一部分,我有一个配置单元活动,使用两个未老化的S3数据节点作为输入。我想要的是能够在活动上设置两个脚本变量,每个变量都指向一个输入数据节点,但我无法获得正确的语法。使用单个输入,我可以编写以下内容,并且工作正常:

INPUT_FOO=#{input.directoryPath}
当我添加第二个输入时,我遇到了一个如何引用它们的问题,因为它们现在是一个输入数组,如下面的管道定义所示。基本上,我想实现以下目标,但无法找到正确的语法:

INPUT_FOO=#{input[1].directoryPath}
INPUT_BAR=#{input[2].directoryPath}
以下是管道定义的活动部分:

{
  "id": "ActivityId_7u1sR",
  "input": [
    {
      "ref": "DataNodeId_iYnxf"
    },
    {
      "ref": "DataNodeId_162Ka"
    }
  ],
  "schedule": {
    "ref": "DefaultSchedule"
  },
  "scriptUri": "#{myS3ScriptLocation}calculate-results.q",
  "name": "Perform Calculations",
  "runsOn": {
    "ref": "EmrClusterId_jHeiV"
  },
  "scriptVariable": [
    "INPUT_SOURCE1=#{input[1].directoryPath}",
    "OUTPUT=#{output.directoryPath}Results/",
    "INPUT_SOURCE2=#{input[2].directoryPath}"
  ],
  "output": {
    "ref": "DataNodeId_2jY6v"
  },
  "type": "HiveActivity",
  "stage": "false"
}
我计划保持表未老化,并负责配置单元脚本中的表创建,以便更容易在隔离状态下以及在管道中运行每个配置单元活动

下面是我在使用数组语法时看到的错误:

Unable to resolve input[1].directoryPath for object ActivityId_7u1sR'

目前,不支持此方案,但已添加功能请求以在将来支持它。

正确的语法是否为
input.directoryPath[1]
?我不确定
.q
文件是什么。我认为这可能取决于您如何使用该语言编制索引我尝试在directoryPath级别上编制索引,但架构师编辑器将其标记为错误,因此我不清楚索引语法在数据管道变量中如何工作(如果可能的话)。另外,q文件是一个配置单元脚本。好的,我想我明白你现在想做什么了。为什么不或者不能直接将这两个源添加到HiveActivity中作为直接输入?编辑:如果这两个数据源都在S3上,那么您也应该将它们的目录显式地键入变量中。这是数据管道不支持的。但我认为DataPipeline最近增加了对数组表达式求值的支持。您可能需要联系团队/论坛,将其添加到他们的文档中。同时,尝试使用“INPUT\u SOURCE=INPUT.directoryPath”,它可能会将数据作为数组传递给您。然后在脚本中解析它。很抱歉进行了大量手动操作。我联系了AWS支持部门,后者联系了数据管道服务团队,他们说目前不支持此方案,但他们为其添加了功能请求。感谢您对此问题的所有意见。此功能的任何状态都已添加,现在可用吗?看起来AWS尚未解决此问题。我们需要采取一些扭转措施来实现这一目标。