Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Umwandlung von DataFrame in RDD[(String, String)].

Sie können df.map(row => ...) verwenden, um den Datenrahmen in ein RDD zu konvertieren, wenn Sie eine Zeile einem anderen RDD-Element zuordnen möchten.

Zum Beispiel:

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)]

Siehe https://community.hortonworks.com/questions/106500/error-in-spark-streaming-kafka-integration-structu.html bezüglich AnalysisException:Abfragen mit Streaming-Quellen müssen mit writeStream.start() ausgeführt werden

Sie müssen mit query.awaitTermination() auf die Beendigung der Abfrage warten Um zu verhindern, dass der Prozess beendet wird, während die Abfrage aktiv ist.