我想知道在Spark應用程序中是否可以從驅動程序訪問HDFS。這意味着,如何在驅動程序中讀/寫HDFS文件。一種可能的解決方案是將文件讀取爲RDD(sc.textFile
),然後將其收集到驅動程序中。但是,這不是我要找的。如何從驅動程序在spark中讀取/寫入HDFS
回答
如果您想直接訪問從驅動程序,你可以簡單地做(Scala中)HDFS:
val hdfs = FileSystem.get(sc.hadoopConfiguration)
然後你可以使用這樣創建的變量hdfs
直接訪問HDFS作爲文件系統,而無需使用星火。
(代碼快照我假設你有一個叫SparkContext
正確sc
配置)
我只是在星火1.6和2.1嘗試這樣: VAL sparkConf =新SparkConf() VAL HDFS = FileSystem.get(sparkConf.hadoopConfiguration) 結果是「無法解析符號hadoopConfiguration。 –
嗯,但streamingContext.sparkContext.hadoopConfiguration工作正常,:) –
不起作用,因爲你試圖從'SparkConf'對象獲取'hadoopConfiguration'而不是像你應該做的那樣形成'SparkContext'對象。 – mgaido
只需在驅動程序中收集所有數據,然後使用hdfs的java api將其寫入hdfs即可。
- 1. Cyclejs讀取/寫入websocket驅動程序?
- 2. 在Spark/Scala中寫入HDFS
- 3. Spark(Scala)從驅動程序寫入(和讀取)到本地文件系統
- 4. 如何從Spark Streaming腳本寫入HDFS
- 5. 從HDFS中讀取到Spark中
- 6. Hadoop寫入/讀取int []從/到HDFS
- 7. 如何讀取/寫入(編程)閃存驅動器的MBR/VBR?
- 8. 如何直接使用Win32 API從驅動器讀取/寫入驅動器
- 9. 從apache spark讀取/寫入dynamo db
- 10. 設備驅動程序寫入/讀取的工作方式
- 11. Hadoop JUnit測試從hdfs寫入/讀取hdfs
- 12. 如何使用Ruby在Hadoop HDFS中寫入/讀取文件?
- 13. 如何從驅動程序代碼中讀取註冊表?
- 14. 如何從PEPROCESS中讀取驅動程序中的導入地址表?
- 15. 如何從hdfs將二進制文件讀入Spark數據框?
- 16. 從HDFS讀寫HBASE
- 17. 如何使用DMA從Linux設備驅動程序寫入硬盤驅動器
- 18. 如何在Windows中讀取設備驅動程序的狀態?
- 19. HDFS緩衝寫入/讀取操作
- 20. 在Spark應用程序中讀取Kerberized羣集中的HDFS文件
- 21. 當Spark從文件系統讀取數據時,它會轉到驅動程序?
- 22. 從智能卡(驅動程序卡)讀取DIN(驅動程序識別碼)
- 23. 如何在spark中設置驅動程序的python版本?
- 24. 如何啓動自寫驅動程序
- 25. Apache Spark:如何更改Spark驅動程序偵聽的端口
- 26. 從Java中的spark轉換函數寫入HDFS中的文件
- 27. 如何強制直接從HDFS讀取Apache Mahout應用程序
- 28. spark中的數據並行:從hdfs讀取avro數據
- 29. 無法使用ubuntu中的spark shell從HDFS讀取文件
- 30. 階段1:HDFS讀取:0 HDFS寫入:0失敗
收集的RDD究竟是如何一會做到這一點。有什麼理由反對嗎? – chrisaycock
你的意思是沒有別的辦法?如果我採用這種方法,那麼在收集後如何將它寫入hdfs? –
有['RDD.saveAsTextFile()'](http://spark.apache.org/docs/latest/programming-guide.html#actions),但我很困惑你爲什麼要收集任何東西給司機只是把它寫回來。 Spark希望在執行* action *之前在RDD上執行一系列*轉換*。除非你的目標只是看它,否則你通常不應該把數據帶回驅動程序。 – chrisaycock