我正在尝试按照official example设置并运行我的第一个Spark查询。 在我们的本地机器上,我们已经设置了Datastax Enterprise数据包的最新版本(目前为4.7)。
我完全根据文档做了所有事情,我将最新版本的 dse.jar 添加到我的项目中,但错误从一开始就出现了:
以下是他们示例中的代码段
SparkConf conf = DseSparkConfHelper.enrichSparkConf(new SparkConf())
.setAppName( "My application");
DseSparkContext sc = new DseSparkContext(conf);
现在看来DseSparkContext
类只有默认的空构造函数。
这些行之后是以下
JavaRDD<String> cassandraRdd = CassandraJavaUtil.javaFunctions(sc)
.cassandraTable("my_keyspace", "my_table", .mapColumnTo(String.class))
.select("my_column");
主要问题是,CassandraJavaUtil.javaFunctions(sc)
方法只接受SparkContext
输入而不是DseSparkContext
(SparkContext
和DseSparkContext
是完全不同的类和一个不是从另一个继承而来的。)
我认为文档与realese版本不是最新版本,如果之前有人遇到此问题,请与我分享您的经验,
谢谢!
答案 0 :(得分:1)
文档中似乎有一个错误。那应该是
DseSparkContext.apply(conf)
由于DseSparkContext是一个Scala对象,它使用Apply函数创建新的SparkContexts。在Scala中,您只需编写DseSparkContext(conf)
,但在Java中,您必须实际调用该方法。我知道您无权访问此代码,因此我们确保在文档中修复此问题并查看我们是否可以获得更好的API文档。