我在AWS数据管道中使用EMR活动。此EMR活动在EMR群集中运行配置单元脚本。它以dynamo DB作为输入并将数据存储在S3中。
这是EMR活动中使用的EMR步骤
s3://elasticmapreduce/libs/script-runner/script-runner.jar,s3://elasticmapreduce/libs/hive/hive-script,--run-hive-script,--hive-versions,latest,--args,-f,s3://my-s3-bucket/hive/my_hive_script.q,-d,DYNAMODB_INPUT_TABLE1=MyTable,-d,S3_OUTPUT_BUCKET=#{output.directoryPath}
Run Code Online (Sandbox Code Playgroud)
哪里
out.direcoryPath是:
s3://my-s3-bucket/output/#{format(@scheduledStartTime,"YYYY-MM-dd")}
Run Code Online (Sandbox Code Playgroud)
因此,这将在S3中创建一个文件夹和一个文件。(从技术上讲,它会创建两个键2017-03-18/<some_random_number>和2017-03-18_$folder$)
2017-03-18
2017-03-18_$folder$
Run Code Online (Sandbox Code Playgroud)
如何避免创建这些多余的空_$folder$文件。
编辑:我在https://issues.apache.org/jira/browse/HADOOP-10400中找到了一个解决方案,但我不知道如何在AWS数据管道中实现它。