/ / Convertir el marco de datos pandas a RDD en zeppelin - python, apache-spark, apache-zeppelin

Convierta el marco de datos pandas a RDD en zeppelin - python, apache-spark, apache-zeppelin

Soy nuevo en Zeppelin y hay cosas que simplemente no entiendo.

He descargado una tabla de un db con python,entonces, me gustaría convertirlo en un RDD. Pero tengo el error de que la tabla no se encuentra. Creo que hay un problema al encontrar las tablas creadas con otros intérpretes, pero no sé realmente ... Lo intenté con esta y esta pregunta, pero todavía no funciona, crean el df directamente con chispa. Cualquier ayuda sería muy útil :)

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

Respuestas

2 para la respuesta № 1

Convertir un DataFrame de Pandas en un DataFrame de Spark es bastante sencillo:

%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

Para obtenerlo con Scala Spark, solo tendrás que hacer lo siguiente:

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

También puede obtener el rdd subyacente:

val rdd = df.rdd