繁体   English   中英

从Spark将JavaRDD保存到HDFS

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM