【问题标题】:Getting started with Spark (Datastax Enterprise)Spark 入门(Datastax 企业版)
【发布时间】:2015-05-29 01:26:28
【问题描述】:

我正在尝试在official example 之后设置并运行我的第一个 Spark 查询。 在我们的本地机器上,我们已经设置了 Datastax Enterprise 数据包的最新版本(现在是 4.7)。

我完全按照文档做所有事情,我将最新版本的 dse.jar 附加到我的项目中,但错误从一开始就出现了:

这是他们示例中的 sn-p

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)method 在输入时只接受 SparkContext 而不是 DseSparkContextSparkContextDseSparkContext 是完全不同的类,其中一个不是从另一个继承的)。

我认为文档不是最新的 realese 版本,如果有人以前遇到过这个问题,请与我分享你的经验,

谢谢!

【问题讨论】:

    标签: cassandra apache-spark datastax datastax-enterprise


    【解决方案1】:

    文档中似乎存在错误。那应该是

    DseSparkContext.apply(conf)
    

    因为 DseSparkContext 是一个 Scala 对象,它使用 Apply 函数来创建新的 SparkContexts。在 Scala 中,您可以只写 DseSparkContext(conf),但在 Java 中,您必须实际调用该方法。我知道您无权访问此代码,因此我将确保在文档中修复此问题,并查看我们是否可以获得更好的 API 文档。

    【讨论】:

    • 仅供参考,这仍然是文档中的一个错误。
    • 这不再是必需的 @Zytx 我稍后会更新(对于 dse 4.7+)
    • 其实我不确定,让我用 api 仔细检查一下
    猜你喜欢
    • 2016-04-29
    • 2018-12-11
    • 2023-03-30
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    相关资源
    最近更新 更多