case class SourcePartition(id: String, host:String ,bucket: Int)
joinedRDDs =partitions.joinWithCassandraTable("db_name","table_name")
joinedRDDs.values.foreach(println)
我必须使用joinWithCassandraTable,如何将结果CassandraRow转换为DataFrame? OR是否有与DataFrame相同的joinWithCassandraTable?
我必须一次性阅读很多分区,我知道Datastax Cassandra连接器谓词下推,但它允许一次只拉一个分区(它似乎不允许IN运算符,仅=似乎得到了支持)
答案 0 :(得分:0)
val spark: SparkSession = SparkSession.builder().master("local[4]").appName("RDD2DF").getOrCreate()
val sc: SparkContext = spark.sparkContext
import spark.implicits._
val internalJoinRDD = spark.sparkContext.cassandraTable("test", "test_table_1").joinWithCassandraTable("test", "table_table_2")
internalJoin.toDebugString
internalJoinRDD.toDF()
您可以尝试上面的代码段吗?
如果您有数据架构,可以使用
def createDataFrame(internalJoinRDD: RDD[Row], schema: StructType): DataFrame