我正在尝试使用Data Pipeline来运行Spark应用程序。如何在Spark应用程序中访问我为EmrActivity指定的输入/输出(S3DataNode)?
我的问题与此类似 - https://forums.aws.amazon.com/message.jspa?messageID=507877
早些时候我曾经将输入和输出作为参数传递给Spark应用程序。
由于
答案 0 :(得分:2)
我遇到了同样的问题。关于此,有非常有限的文档。这是我的理解:
您为EmrActivity指定input
和output
。这将创建数据节点和活动之间的依赖关系。
在EmrActivity中,您可以像这样引用输入源:#{input.directoryPath},#{output.directoryPath}
示例:
...
{
"name": "Input Data Node",
"id": "inputDataNode",
"type": "S3DataNode",
"directoryPath": "s3://my/raw/data/path"
},
{
"name": "transform",
"id": "transform",
"type": "EmrActivity",
"step": [
"s3://us-east-1.elasticmapreduce/libs/script-runner/script-runner.jar,s3://my/transform/script.sh,#{input.directoryPath},#{output.directoryPath}"
],
"runsOn": {
"ref": "emrcluster"
},
"input": {
"ref": "inputDataNode"
},
"output": {
"ref": "outputDataNode"
}
},
{
"name": "Output Data Node",
"id": "outputDataNode",
"type": "S3DataNode",
"directoryPath": "s3://path/to/output/"
},
...