spark 读取hdfs按行输出 java调用完整实例
时间: 2023-09-08 18:01:22 浏览: 125
Spark 是一个开源的分布式计算框架,可以在大规模集群上进行高效的数据处理和分析。它支持读取和处理各种数据源,包括 HDFS(Hadoop 分布式文件系统)。
在 Java 中调用 Spark 读取 HDFS 并按行输出的完整实例如下:
```java
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
public class SparkHDFSExample {
public static void main(String[] args) {
// 创建 SparkConf 对象
SparkConf conf = new SparkConf().setAppName("SparkHDFSExample").setMaster("local");
// 创建 JavaSparkContext 对象
JavaSparkContext sc = new JavaSparkContext(conf);
// 读取 HDFS 文件
JavaRDD<String> lines = sc.textFile("hdfs://localhost:9000/path/to/file.txt");
// 按行输出文件内容
lines.foreach(line -> System.out.println(line));
// 关闭 SparkContext
sc.close();
}
}
```
首先,我们需要创建一个 SparkConf 对象来配置 Spark 应用程序。可以设置应用程序的名称和运行模式,这里我们设置为本地模式。
接下来,创建 JavaSparkContext 对象,它是 Spark 的入口点,可以用于创建 RDD(弹性分布式数据集)并执行不同的操作。
然后,使用 JavaSparkContext 对象的 `textFile()` 方法读取 HDFS 文件,该方法返回一个包含文件每一行内容的 JavaRDD 对象。
最后,通过调用 `foreach()` 方法,对 RDD 进行遍历并按行输出文件内容。这里使用 Java 8 的 Lambda 表达式简化代码。
最后,记得关闭 SparkContext 以释放资源。
注意,上述代码中的 HDFS 路径 `hdfs://localhost:9000/path/to/file.txt` 需要根据实际情况进行修改,确保能够正确访问 HDFS 文件。
阅读全文