我有一个基于Scala的应用程序,我需要将它连接到Cassandra。我发现DataStax企业版驱动程序在这方面非常有用,这些驱动程序有很多很酷的功能,比如内置的Cassandra负载均衡,这对我来说真的很重要。不幸的是,Scala没有任何原生DSE驱动程序。我知道我们可以使用DSE Java驱动程序,但在这种情况下,我们会失去很多Scala很酷的特性。我还发现了spark-cassandra-connector,它也是由Datastax构建的,但这个内置的负载平衡功能对我来说真的很重要,我不知道spark-cassandra-connector是否支持它。
在使用DSE Java驱动的基于Java的应用程序中,我需要在配置文件中配置内置的负载均衡器,如下所示:
datastax-java-driver.basic.load-balancing-policy {
class = DefaultLoadBalancingPolicy
}我不知道在Scala中使用spark-cassandra-connector的等效方式,我甚至不确定它是否可行。任何帮助都将不胜感激。谢谢。
发布于 2019-11-20 05:41:06
在Scala中,你可以直接使用Java driver --开箱即用,你并不只支持基本的Scala类型,但是你可以通过将java-driver-scala-extras导入到你的项目中(作为源代码)来解决这个问题--它至少适用于driver 3.x。另一个问题是对Option的支持,但这可以通过具有extra codec in Java driver的Java来实现。
关于驱动程序的定制--该部分无需更改即可与Scala一起工作。关于Spark中默认策略的支持- Spark Cassandra连接器出于特殊原因有一个单独的策略-它接近Java的默认策略,但具有Spark的具体内容。
https://stackoverflow.com/questions/58937419
复制相似问题