gpt4 book ai didi

java - 如何使用 Java 有效地读取 Hadoop (HDFS) 文件中的第一行?

转载 作者:可可西里 更新时间:2023-11-01 14:21:47 25 4
gpt4 key购买 nike

我的 Hadoop 集群上有一个很大的 CSV 文件。文件的第一行是“标题”行,由字段名称组成。我想在此标题行上执行操作,但我不想处理整个文件。另外,我的程序是用 Java 编写并使用 Spark 的。

在 Hadoop 集群上仅读取大型 CSV 文件的第一行的有效方法是什么?

最佳答案

您可以使用 FileSystem 访问 hdfs 文件类(class)和 friend :

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,并且会以合理的速度运行。

关于java - 如何使用 Java 有效地读取 Hadoop (HDFS) 文件中的第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21188788/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com