代码之家  ›  专栏  ›  技术社区  ›  Parth Vishvajit

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

  •  4
  • Parth Vishvajit  · 技术社区  · 8 年前

    我正在尝试从RDD[cassandraRow]创建数据帧……但我不能,因为createDataframe( RDD[行] ,schema:StructType)需要RDD[Row]而不是RDD[cassandraRow]。

    • 我如何才能做到这一点?

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

    (答案之一)关于在RDD[Row]上使用toDF()从RDD获取数据帧的建议不适用于我。

    • 我还不知道,如何用RDD(RDD[Row])实例调用Dataframe(toDF())方法?

    我正在使用Scala。 enter image description here

    1 回复  |  直到 7 年前
        1
  •  6
  •   zero323 little_kid_pea    8 年前

    如果您确实需要,您可以随时将数据映射到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()