【发布时间】:2020-11-06 10:31:39
【问题描述】:
我正在使用 Datastax spark-Cassandra-connector 访问 Cassandra 中的一些数据。 我的要求是将 RDD 与 Cassandra 表连接,获取结果并将其存储在 hive 表中。
我正在使用 joinWithCassandraTable 加入 cassadra 表。加入后,产生的 RDD 如下所示
com.datastax.spark.connector.rdd.CassandraJoinRDD[org.apache.spark.sql.Row,
com.datastax.spark.connector.CassandraRow] =
CassandraJoinRDD[17] at RDD at CassandraRDD.scala:19
我尝试了以下步骤来转换为数据框,但没有一种方法有效。
val data=joinWithRDD.map{
case(_, cassandraRow) => Row(cassandraRow.columnValues:_*)
}
sqlContext.createDataFrame(data,schema)
我遇到了错误
java.lang.ClassCastException: cannot assign instance of
scala.collection.immutable.List$SerializationProxy to field
org.apache.spark.rdd.RDD.org$apache$spark$rdd$RDD$$dependencies_ of
type scala.collection.Seq in instance of org.apache.spark.rdd.MapPartitionsRDD
您能帮我将joinWithCassandraTable 转换为数据框吗?
【问题讨论】:
标签: apache-spark cassandra spark-cassandra-connector