[英]Save JavaRDD to HDFS from Spark
我正在尝试将Spark JavaRDD保存到HDFS。 该过程成功运行,但是我看不到HDFS中保存的文件。 下面是我的代码。 我在本地运行。 (直接从IntelliJ运行main()方法。)
public static void main(String[] args){
String file = "/Path/to/file/abc.csv";
SparkConf conf = new SparkConf().setAppName("test").setMaster("local");
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD<String> lines = sc.textFile(file);
JavaRDD<String > filteredLines = lines.filter(new Function<String, Boolean>() {
@Override
public Boolean call(String s) throws Exception {
return s.contains("Hollywood");
}
});
filteredLines.coalesce(1).saveAsObjectFile("hdfs://localhost:9000/input");
sc.close();
}
我正在Spark 2.0和Hadoop 2.7.2上运行此代码。 在我的hadoop中,core-site.xml配置为localhost:9000。 我正在按照hadoop文档中的说明启动我的HDFS伪分布式集群。
我在这里想念什么?
已经尝试过saveAsSequenceFile
吗?
看看这个
https://spark.apache.org/docs/1.0.0/api/java/org/apache/spark/rdd/SequenceFileRDDFunctions.html
谢谢。
最后,我能够解决这个问题。 有2期
1)我正在使用Hadoop-2.7.2,而我的Java版本是jdk1.8。 似乎仅Hadoop2.0及更高版本支持JDK1.8。 对于Hadoop-2.7,我需要JDK1.7。 我将Java版本更改为1.7
2)Hadoop目录缺少权限。 执行中
chmod -R 755 / hadoop /目录
提供了必要的许可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.