Redis
 sql >> Base de données >  >> NoSQL >> Redis

Conversion de DataFrame en RDD[(String, String)]

Vous pouvez utiliser df.map(row => ...) pour convertir la trame de données en RDD si vous souhaitez mapper une ligne à un élément RDD différent.

Par exemple :

val df = Seq(("table1",432),
      ("table2",567),
      ("table3",987),
      ("table1",789)).
      toDF("tablename", "Code").toDF()

    df.show()

    +---------+----+
|tablename|Code|
+---------+----+
|   table1| 432|
|   table2| 567|
|   table3| 987|
|   table1| 789|
+---------+----+

    val rddDf = df.map(r => (r(0), r(1))).rdd // Type:RDD[(Any,Any)]

    OR

    val rdd = df.map(r => (r(0).toString, r(1).toString)).rdd  //Type: RDD[(String,String)]

Veuillez consulter https://community.hortonworks.com/questions/106500/error-in-spark-streaming-kafka-integration-structu.html concernant AnalysisException :les requêtes avec des sources de streaming doivent être exécutées avec writeStream.start()

Vous devez attendre la fin de la requête en utilisant query.awaitTermination() Pour empêcher le processus de se terminer pendant que la requête est active.