Ho uno script Pig (utilizzando un MultiStorage leggermente modificato) che trasforma alcuni dati. Una volta che lo script viene eseguito, ho i dati nel seguente formato su HDFS:Rimuovere il livello di directory durante il trasferimento da HDFS a S3 utilizzando S3DistCp
/tmp/data/identifier1/indentifier1-0,0001
/tmp/data/identifier1/indentifier1-0,0002
/tmp/data/identifier2/indentifier2-0,0001
/tmp/data/identifier3/indentifier3-0,0001
che sto tentando di utilizzare S3DistCp per copiare questi file S3. Sto usando l'opzione --groupBy .*(identifier[0-9]).*
per combinare i file in base all'identificatore. La combinazione funziona, ma quando si copia su S3, anche le cartelle vengono copiate. L'output finale è:
/s3bucket/identifier1/identifier1
/s3bucket/identifier2/identifier2
/s3bucket/identifier3/identifier3
C'è un modo per copiare questi file senza quella prima cartella? Idealmente, la mia uscita in S3 sarà simile:
/s3bucket/identifier1
/s3bucket/identifier2
/s3bucket/identifier3
Un'altra soluzione che ho considerato è quello di utilizzare i comandi HDFS per estrarre i file dalla loro directory prima di copiare a S3. È una soluzione ragionevole?
Grazie!
puoi pubblicare il tuo comando. –
Supponendo che si intenda per comando s3distcp, ecco gli argomenti passati al passo EMR: '--s3Endpoint s3.amazonaws.com --src hdfs: /// tmp/data/--dest s3: // output --groupBy . */(identificatore). * ' – NolanDC
A questo punto nel tempo s3distcp non può appiattire le directory. Accedi a https://forums.aws.amazon.com/thread.jspa?messageID=479023 per la richiesta di funzionalità. – ChristopherB