为什么从DataStax Enterprise 4.7中删除了Cassandra Context

时间:2016-04-20 06:57:59

标签: datastax datastax-enterprise spark-cassandra-connector

我从link开始了解Cassandra上下文被移除DataStax Enterprise 4.7。这是否意味着它将从Spark Cassandra Connector中删除?另外,删除它的原因是什么。它与性能有关吗?

1 个答案:

答案 0 :(得分:1)

Cassandra Context

'CassandraContext'对象只是Datastax,并且在Spark Cassandra连接器中从不存在。它基本上是Cassandra表到Scala对象和case类的编译映射。每次Cassandra的底层模式发生变化时,都需要编译一个新对象,并与OSS Spark Cassandra Connector API产生分歧。创建此对象的额外性能成本被视为浪费时间而不是它提供的有限便利。此外,代码只能在spark shell中使用,因此它不适合独立应用程序的原型代码。

编辑:我错了Cassandra Context是一个独立的结构,而不是CassandraSQLContext。我的记忆错了。

CassandraSQLContext的主要目的是在系统没有HiveMetastore时从Spark提供持久目录和自动映射到Cassandra表。使用CassandraSqlContext时,用户仅限于AnsiSQL的一小部分,而使用HiveContext则使用99%的HiveQL。 CassandraSQLContext的代码仍然存在于连接器中,您仍然可以在DSE中创建CassandraSQLContext

在Datastax Enterprise中,已经有一个HiveMetastore与Cassandra合作。自定义Metastore也自动注册所有Cassandra表,因此CassandraSQLContext被认为是多余的,令人困惑的,并且与Hive对应物相比没有特色。为此,建议所有用户使用HiveContext而不是CassandraSQLContext,我们从shell中删除了自动cc对象。