/ Konvertieren Pandas Datenrahmen zu RDD in Zeppelin - Python, Apache-Spark, Apache-Zeppelin

Konvertieren Pandas Datenrahmen zu RDD in Zeppelin - Python, Apache-Spark, Apache-Zeppelin

Ich bin neu in Zeppelin und ich verstehe Dinge, die ich nicht verstehe.

Ich habe eine Tabelle von einer db mit Python heruntergeladen,dann möchte ich es in eine RDD konvertieren. Aber ich habe den Fehler, dass die Tabelle nicht gefunden wird. Ich denke, es ist ein Problem, die Tische mit anderen Dolmetschern zu gründen, aber ich weiß es nicht wirklich ... Ich habe es versucht Dies und Dies Frage aber immer noch nicht arbeiten, sie erstellen die DF direkt mit Funken. Jede Hilfe wäre so nützlich :)

 %python
engine = create_engine(
"mysql+mysqlconnector://...")
df = pd.read_sql(query, engine)

%spark
val sqlContext = new org.apache.spark.sql.SQLContext(sc)

import sqlContext.implicits._
df=df.registerTempTable("df")

val df = sqlContext.sql("SELECT * from df LIMIT 5")
df.collect().foreach(println)

Antworten:

2 für die Antwort № 1

Die Konvertierung eines Pandas DataFrame in einen Spark DataFrame ist recht einfach:

%python
import pandas

pdf = pandas.DataFrame([[1, 2]]) # this is a dummy dataframe

# convert your pandas dataframe to a spark dataframe
df = sqlContext.createDataFrame(pdf)

# you can register the table to use it across interpreters
df.registerTempTable("df")

# you can get the underlying RDD without changing the interpreter
rdd = df.rdd

Um es mit scala spark zu holen, müssen Sie nur folgendes tun:

%spark
val df = sqlContext.sql("select * from df")
df.show()
// +---+---+
// |  0|  1|
// +---+---+
// |  1|  2|
// +---+---+

Sie können auch die zugrunde liegende rdd erhalten:

val rdd = df.rdd