Voglio verificare se esistono diversi file in hdf prima di caricarli da SparkContext. Io uso pyspark. Ho provato os.system("hadoop fs -test -e %s" %path)
ma come ho un sacco di percorsi da controllare, il lavoro si è schiantato. Ho provato anche a sc.wholeTextFiles(parent_path)
e poi ho filtrato per chiavi. ma si è bloccato anche perché il parent_path contiene molti sottocavi e file. Potresti aiutarmi?pyspark: come verificare se un file esiste in hdf
risposta
rigth come si dice Tristan Reid:
... (Spark) Può leggere molti formati, e supporta Hadoop espressioni glob, che sono terribilmente utile per la lettura da percorsi multipli in HDFS, ma doesn Non ho una funzione incorporata di cui sono a conoscenza per il passaggio di directory o file, né ha utilità specifiche per interagire con Hadoop o HDFS.
In ogni caso, questa è la sua risposta a una domanda relativa: Pyspark: get list of files/directories on HDFS path
Una volta che avete l'elenco dei file in una directory, è facile verificare se un particolare file esiste.
Spero possa essere utile in qualche modo.
Hai provato a utilizzare pydoop? La funzione exists
dovrebbe funzionare
Una possibilità è che è possibile utilizzare hadoop fs -lsr your_path
per ottenere tutti i percorsi e quindi verificare se i percorsi che ti interessano sono in quel set.
Per quanto riguarda l'arresto anomalo, è possibile che sia stato il risultato di tutte le chiamate a os.system
anziché essere specifico del comando hadoop. A volte chiamare un processo esterno può causare problemi relativi ai buffer che non vengono mai rilasciati, in particolare i buffer di I/O (stdin/stdout).
Una soluzione sarebbe quella di effettuare una singola chiamata a uno script di bash che scorre su tutti i percorsi. È possibile creare lo script utilizzando un modello di stringa nel codice, compilare l'array di percorsi nello script, scriverlo e quindi eseguirlo.
Potrebbe anche essere una buona idea passare al modulo subprocess
di python, che offre un controllo più granulare sulla gestione dei sottoprocessi. Ecco l'equivalente di os.system
:
process = subprocess.check_output(
args=your_script,
stdout=PIPE,
shell=True
)
Si noti che è possibile passare stdout
a qualcosa come un handle di file se questo ti aiuta con il debug o rendendo il processo più robusto. Inoltre, è possibile passare l'argomento shell=True
a False
a meno che non si stia chiamando uno script reale o si utilizzino elementi specifici della shell come pipe o reindirizzamento.
- 1. Come verificare se esiste un file
- 2. come posso verificare se esiste un file?
- 3. Verificare se esiste un file in Yii
- 4. Come verificare se un file esiste in una cartella?
- 5. Come verificare se esiste un file mappato in memoria?
- 6. Come verificare un file se esiste con jolly in Java?
- 7. Come verificare se esiste un file immagine remoto in PHP?
- 8. Come verificare se un file esiste in Matlab?
- 9. Come verificare se un file esiste da un url
- 10. Verificare se il file esiste in ksh
- 11. Come verificare se un file esiste su un server esterno
- 12. percorso file in hdf
- 13. posso verificare se esiste un file in un URL?
- 14. posso verificare se esiste un file in un URL?
- 15. Come verificare se il file esiste in Qt in C++
- 16. Come verificare se esiste un file nel percorso definito dall'utente?
- 17. Come posso verificare se un file esiste usando Emacs Lisp?
- 18. Verificare se esiste un oggetto in VBScript
- 19. Come verificare se esiste un utente postgres?
- 20. Prolog: come verificare se esiste un predicato?
- 21. gelsomino - come verificare se esiste un argomento?
- 22. Come verificare se esiste un elemento dell'array?
- 23. Come verificare se esiste un percorso?
- 24. Come verificare se esiste un determinato assemblaggio?
- 25. Come verificare se il file di risorse esiste in Java?
- 26. come verificare se il file esiste in Storage di Firebase?
- 27. Come verificare se l'immagine esiste in Rails?
- 28. come verificare se esiste una colonna in un datatable
- 29. Tentativo di verificare se un file esiste nella memoria interna
- 30. Verificare se esiste un file locale (API HTML5 FS)