SparkContext转化为JavaSparkContext

引言
自动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");
 

猜你喜欢

转载自blog.csdn.net/hellozhxy/article/details/84870639