Используйте сценарий ниже в действии начальной загрузки EMR, чтобы решить эту проблему. Патч предоставлен AWS
ользую EMR Activity в конвейере данных AWS. Это действие EMR выполняет сценарий куста в кластере EMR. Он принимает динамо DB в качестве входных данных и сохраняет данные в S3.
Это шаг EMR, используемый в EMR Activity
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}
где
out.direcoryPath - это:
s3://my-s3-bucket/output/#{format(@scheduledStartTime,"YYYY-MM-dd")}
Таким образом, это создает одну папку и один файл в S3. (технически говоря, это создает два ключа2017-03-18/<some_random_number>
а также2017-03-18_$folder$
)
2017-03-18
2017-03-18_$folder$
Как избежать создания этих лишних пустых_$folder$
файлы.
РЕДАКТИРОВАТЬ: я нашел решение, перечисленное вhttps://issues.apache.org/jira/browse/HADOOP-10400 но я не знаю, как реализовать это в конвейере данных AWS.