4
我在我的Hadoop集羣上有一個很大的CSV文件。文件的第一行是一個'標題'行,它由字段名組成。我想在這個標題行上執行操作,但我不想處理整個文件。另外,我的程序是用Java編寫的並使用Spark。如何使用Java高效讀取Hadoop(HDFS)文件中的第一行?
在Hadoop集羣中讀取大型CSV文件的第一行的有效方法是什麼?
我在我的Hadoop集羣上有一個很大的CSV文件。文件的第一行是一個'標題'行,它由字段名組成。我想在這個標題行上執行操作,但我不想處理整個文件。另外,我的程序是用Java編寫的並使用Spark。如何使用Java高效讀取Hadoop(HDFS)文件中的第一行?
在Hadoop集羣中讀取大型CSV文件的第一行的有效方法是什麼?
您可以訪問hdfs
文件與FileSystem類,朋友們:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hdfs.DistributedFileSystem;
DistributedFileSystem fileSystem = new DistributedFileSystem();
Configuration conf = new Configuration();
fileSystem.initialize(new URI("hdfs://namenode-host:54310"), conf);
FSDataInputStream input = fileSystem.open(new Path("/path/to/file.csv"));
System.out.println((new BufferedReader(new InputStreamReader(input))).readLine());
此代碼不會使用MapReduce和將與合理的速度運行。
閱讀完這些課程的實際工作後,看起來你是對的!謝謝! – mcsilvio
諷刺?不確定。如果你覺得我可以做更多,請讓我知道。試圖學習如何正確使用StackOverflow。謝謝。 – mcsilvio
是的諷刺。如果你說了類似的話會更好,我嘗試了下面的內容,但它有這樣和那樣的錯誤。 –