RDD上有兩個操作要保存。一個是saveAsTextFile,另一個是saveAsObjectFile。我瞭解saveAsTextFile,但不懂saveAsObjectFile。我是Spark和Scala的新手,因此我對saveAsObjectFile很好奇。它是來自Hadoop的序列文件還是不同的東西?將文件保存在Spark中
我可以讀取使用Map Reduce使用saveAsObjectFile生成的文件嗎?如果是,如何?
RDD上有兩個操作要保存。一個是saveAsTextFile,另一個是saveAsObjectFile。我瞭解saveAsTextFile,但不懂saveAsObjectFile。我是Spark和Scala的新手,因此我對saveAsObjectFile很好奇。它是來自Hadoop的序列文件還是不同的東西?將文件保存在Spark中
我可以讀取使用Map Reduce使用saveAsObjectFile生成的文件嗎?如果是,如何?
現在在讀取序列文件,你可以使用SparkContext.objectFile(「文件的路徑」)其內部利用Hadoop的SequenceFileInputFormat來讀取文件。
或者,您也可以使用SparkContext.newAPIHadoopFile(...)它接受Hadoop的InputFormat和路徑作爲參數。
rdd.saveAsObjectFile將RDD保存爲序列文件。閱讀這些文件使用sparkContext.objectFile( 「文件名」)
如何使用傳統地圖縮小來讀取它?通過說setInputFormat(SequenceFileInputFormat)與序列文件相同還是需要添加進一步的自定義? –
我有一個RDD [字符串],我通過sparkContext.textFile(「fileName」);然後我通過sparkContext.saveAsObjectFile(「abcTest」)將它保存爲目標文件;然後我試圖通過.objectFile(「abcTest」)讀回來,但結果類型是org.apache.spark.rdd.RDD [Nothing];當然,我無法檢查文件的內容。我做錯了什麼? –
我已經運行saveAsTextFile(),但它沒有以壓縮格式保存。需要做些什麼來壓縮它? –
修改了我的答案,並添加了saveAsTextFile()函數的更多詳細信息。 – Sumit