/ / Конвертувати фрейми даних у пандах у RDD у цеппеліні - python, apache-spark, apache-zeppelin

Перетворення pandas dataframe в RDD в ціппелін - python, apache-spark, apache-ceppelin

Я новачок у Zeppelin і я є речі, які я просто не розумію.

Я завантажив таблицю з db з python,тоді я хотів би перетворити його в RDD. Але я отримав помилку, що таблиця не знайдена. Я думаю, що існує проблема створення таблиць, створених з іншими перекладачами, але я дійсно не знаю ... Я спробував це і це питання, але все ще не працювати, вони створюють DF безпосередньо з іскрою. Будь-яка допомога буде настільки корисним :)

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

Відповіді:

2 для відповіді № 1

Перетворення DataFrame у папку DataFrame у Spark є досить прямим:

%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

Щоб отримати його з іскрою scala, вам потрібно буде лише зробити наступне:

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

Ви також можете отримати базовий rdd:

val rdd = df.rdd