为什么从DataStax Enterprise 4.7中删除了Cassandra上下文

alen0pnh  于 2022-11-05  发布在  Cassandra
关注(0)|答案(1)|浏览(156)

我从这个link中得知Cassandra上下文被从DataStax Enterprise 4.7中删除了。这是否意味着它将从Spark Cassandra Connector中删除?还有,删除它的原因是什么?是否与性能有关?

bkhjykvo

bkhjykvo1#

Cassandra上下文

“CassandraContext”对象是Datastax Only,从未存在于Spark Cassandra连接器中。它基本上是一个Cassandra表到Scala对象和case类的编译Map。每次Cassandra的底层架构发生变化时,它都需要编译一个新对象,并与OSS Spark Cassandra连接器API产生分歧。创建该对象的额外性能成本被视为时间的浪费,代码只能在Spark Shell中工作,因此它不适合于对独立应用程序的代码进行原型化。

编辑:我错了,Cassandra上下文是一个独立的结构,而不是CassandraSQLContext。我的记忆有误。

CassandraSQLContext的主要目的是在系统没有HiveMetastore时提供一个持久目录和从Spark到Cassandra表的自动Map。当使用CassandraSqlContext时,用户被限制在AnsiSQL的一个很小的子集上,而HiveContext使用了99%的HiveQL。CassandraSQLContext的代码仍然存在于连接器中,您仍然可以在DSE中创建CassandraSQLContext
在DatastaxEnterprise中,已经编写了一个HiveMetastore来与Cassandra一起使用。自定义Metastore也会自动注册所有Cassandra表,因此使用CassandraSQLContext被视为冗余、混乱功能也不如Hive。为此,建议所有用户使用HiveContext,而不是CassandraSQLContext,并且我们从外壳。

相关问题