SparkContext转化为JavaSparkContext

来源:互联网 发布:java开源代码论坛 编辑:程序博客网 时间:2024/05/29 04:22

引言

自动Spark2.0发布以来,官方最开始推荐的代码由

final SparkConf conf = new SparkConf().setMaster("local").setAppName("---");final JavaSparkContext ctx = new JavaSparkContext(conf);

这种形式转化成为了

SparkSession spark = SparkSession                .builder()                .master("local")                .appName("---")                .getOrCreate();

这种形式,但是这样对于Java程序员有一定问题。

问题

当我们使用Java语言进行编程的时候,尤其是需要对文本文件进行textFile读取的时候,容易产生类型错误,这样的原因是因为由上面代码实例化的spark调用sparkContext()方法获取的context对象是scala的SparkContext对象,而不是我们最开始的手动方法获取的JavaSparkContext对象。
所以,当我们调用textFile方法的时候,返回的数据类型为RDD而不是JavaRDD

解决方法

JavaRDD<String> text =         JavaSparkContext.fromSparkContext(spark.sparkContext())        .textFile("path");

使用JavaSparkContextfromSparkContext方法对原本的context进行数据类型转化即可。

原创粉丝点击