我从link开始了解Cassandra上下文被移除DataStax Enterprise 4.7
。这是否意味着它将从Spark Cassandra Connector
中删除?另外,删除它的原因是什么。它与性能有关吗?
答案 0 :(得分:1)
'CassandraContext'对象只是Datastax,并且在Spark Cassandra连接器中从不存在。它基本上是Cassandra表到Scala对象和case类的编译映射。每次Cassandra的底层模式发生变化时,都需要编译一个新对象,并与OSS Spark Cassandra Connector API产生分歧。创建此对象的额外性能成本被视为浪费时间而不是它提供的有限便利。此外,代码只能在spark shell中使用,因此它不适合独立应用程序的原型代码。
CassandraSQLContext
的主要目的是在系统没有HiveMetastore
时从Spark提供持久目录和自动映射到Cassandra表。使用CassandraSqlContext时,用户仅限于AnsiSQL的一小部分,而使用HiveContext
则使用99%的HiveQL。 CassandraSQLContext
的代码仍然存在于连接器中,您仍然可以在DSE中创建CassandraSQLContext
。
在Datastax Enterprise中,已经有一个HiveMetastore
与Cassandra合作。自定义Metastore也自动注册所有Cassandra表,因此CassandraSQLContext
被认为是多余的,令人困惑的,并且与Hive对应物相比没有特色。为此,建议所有用户使用HiveContext而不是CassandraSQLContext,我们从shell中删除了自动cc
对象。