【问题标题】:Cassandra's CqlInputFormat failed to built in Scala but worked for JavaCassandra 的 CqlInputFormat 未能在 Scala 中构建,但适用于 Java
【发布时间】:2019-02-27 01:37:05
【问题描述】:

我的 Spark scala 代码是这样的:

val input = sc.newAPIHadoopRDD(jconf, classOf[CqlInputFormat], classOf[LongWritable], classOf[Row])

CqlInputFormat 类在 Cassandra 的源代码中实现。 我试图将其转换为 Java 代码并且它有效。但它无法使用 Scala 代码构建。

inferred type arguments[org.apache.hadoop.io.LongWritable,com.datastax.driver.core.Row,org.apache.cassandra.hadoop.cql3.CqlInputFormat] do not conform to method newAPIHadoopRDD's type parameter bounds [K,V,F <: org.apache.hadoop.mapreduce.InputFormat[K,V]]
[error]         val input = sc.newAPIHadoopRDD(jconf, classOf[CqlInputFormat], classOf[LongWritable], classOf[Row]);

[error] /home/project/past/experiments/query/SparkApp/src/main/scala/SparkReader.scala:46: type mismatch;
[error]  found   : Class[org.apache.cassandra.hadoop.cql3.CqlInputFormat](classOf[org.apache.cassandra.hadoop.cql3.CqlInputFormat])
[error]  required: Class[F]
[error]         val input = sc.newAPIHadoopRDD(jconf, classOf[CqlInputFormat], classOf[LongWritable], classOf[Row]);
[error]                                                      ^
[error] /home/project/past/experiments/query/SparkApp/src/main/scala/SparkReader.scala:46: type mismatch;
[error]  found   : Class[org.apache.hadoop.io.LongWritable](classOf[org.apache.hadoop.io.LongWritable])
[error]  required: Class[K]
[error]         val input = sc.newAPIHadoopRDD(jconf, classOf[CqlInputFormat], classOf[LongWritable], classOf[Row]);
[error]                                                                               

[error] /home/project/past/experiments/query/SparkApp/src/main/scala/SparkReader.scala:46: type mismatch;
[error]  found   : Class[com.datastax.driver.core.Row](classOf[com.datastax.driver.core.Row])
[error]  required: Class[V]
[error]  val input = sc.newAPIHadoopRDD(jconf, classOf[CqlInputFormat], classOf[LongWritable], classOf[Row]);
[error]                                                                                                      
[error] four errors found
[error] (compile:compileIncremental) Compilation failed

有什么建议吗?谢谢。

【问题讨论】:

标签: scala apache-spark cassandra spark-cassandra-connector


【解决方案1】:

如果您使用的是 Spark,则需要使用 Spark Cassandra Connector 而不是使用 Hadoop 集成。而且最好使用DataFrames...

我建议通过DS320 course 了解有关 Spark + Cassandra 的更多信息。

【讨论】:

    猜你喜欢
    • 2015-05-10
    • 2015-05-25
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 2018-01-02
    相关资源
    最近更新 更多