如何将cassandraRow转换为Row(apache spark)?

Par*_*jit 4 cassandra apache-spark spark-cassandra-connector

我试图从RDD创建一个Dataframe [cassandraRow] ..但我不能因为createDataframe(RDD [Row],schema:StructType)需要RDD [Row]而不是RDD [cassandraRow].

  • 我怎样才能做到这一点?

并且根据这个问题的答案 如何将rdd对象转换为spark中的dataframe

(其中一个答案)建议在RDD [Row]上使用toDF()从RDD获取Dataframe,这对我不起作用.我尝试在另一个例子中使用RDD [Row](尝试使用toDF()).

  • 对于我来说,我们怎么能用RDD(RDD [Row])的实例调用Dataframe(toDF())的方法呢?

我正在使用Scala. 在此输入图像描述

zer*_*323 6

如果您真的需要这个,您始终可以将数据映射到Spark行:

sqlContext.createDataFrame(
  rdd.map(r => org.apache.spark.sql.Row.fromSeq(r.columnValues)),
  schema
)
Run Code Online (Sandbox Code Playgroud)

但如果你想要DataFrames最好直接导入数据:

val df = sqlContext
  .read
  .format("org.apache.spark.sql.cassandra")
  .options(Map( "table" -> table, "keyspace" -> keyspace))
  .load()
Run Code Online (Sandbox Code Playgroud)