spark實現hadoop中獲取檔名的功能

2021-09-02 13:35:47 字數 920 閱讀 6246

hadoop1版本中提供了獲取檔名的功能,就是在map階段可以獲取每一行記錄屬於哪個檔案,可以得到這個檔名,**如下:

//獲取檔名

inputsplit inputsplit=(inputsplit)context.getinputsplit();

string filename=((filesplit)inputsplit).getpath().getname();

這是hadoop1版本提供的方法。

對於spark也可以實現這個功能,使用的方式是本地測試的**,spark在本地執行的,**如下:

這裡要注意的是,引入的jar包不要錯,錯誤的話,方法就會報錯。引入的jar包是下面的:

import cn.wjpt.auditlogmanager

import org.apache.spark.sparkcontext

import org.apache.spark.sparkcontext._

import org.apache.spark.sparkconf

import org.apache.hadoop.mapred.lib.multipletextoutputformat

import org.apache.hadoop.io.text

import org.apache.hadoop.io.longwritable

import org.apache.spark.rdd.hadooprdd

import org.apache.hadoop.mapred.inputsplit

import org.apache.hadoop.mapred.filesplit

import org.apache.hadoop.mapred.textinputformat

這樣就搞定了。

Hadoop和spark中的區別

hadoop 在mapreduce中,步驟包括map,shuffle,reduce,其中combine和partition是函式。combine作用是將map後產生的鍵值對中,相同key的合併,產生新的鍵值對作為reduce的輸入。而partition的作用是根據key將鍵值對劃分給對應的reduc...

Hadoop 和 Spark 的異同

談到大資料,相信大家對hadoop和apache spark這兩個名字並不陌生。但我們往往對它們的理解只是提留在字面上,並沒有對它們進行深入的思考,下面不妨跟我一塊看下它們究竟有什麼異同。首先,hadoop和apache spark兩者都是大資料框架,但是各自存在的目的不盡相同。hadoop實質上更...

hadoop和spark的異同

解決問題的層面不一樣 首先,hadoop和apache spark兩者都是大資料框架,但是各自存在的目的不盡相同。hadoop實質上更多是乙個分布式資料基礎設施 它將巨大的資料集分派到乙個由普通計算機組成的集群中的多個節點進行儲存,意味著您不需要購買和維護昂貴的伺服器硬體。同時,hadoop還會索引...