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

时间:2016-02-01 05:29:01

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

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

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

并且根据这个问题的答案 How to convert rdd object to dataframe in spark

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

  • 我也不知道怎样才能用RDD(RDD [Row])实例调用Dataframe(toDF())的方法?

我正在使用Scala。 enter image description here

1 个答案:

答案 0 :(得分:6)

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

sqlContext.createDataFrame(
  rdd.map(r => org.apache.spark.sql.Row.fromSeq(r.columnValues)),
  schema
)

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

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