/ / Konwertuj ramkę danych pandy na RDD w zeppelinie - python, apache-spark, apache-zeppelin

Konwertuj ramkę danych pandy na RDD w zeppelinie - python, apache-spark, apache-zeppelin

Jestem nowy w Zeppelin i mam rzeczy, których po prostu nie rozumiem.

Pobrałem tabelę z bazy danych z pythonem,następnie chciałbym przekonwertować go na RDD. Ale mam błąd, że tabela nie została znaleziona. Myślę, że istnieje problem z założeniem tabel utworzonych z udziałem innych tłumaczy, ale nie wiem tak naprawdę ... próbowałem to i to pytanie, ale nadal nie działa, oni tworzą df bezpośrednio z iskry. Każda pomoc byłaby tak przydatna :)

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

Odpowiedzi:

2 dla odpowiedzi № 1

Konwersja DataFrame Pand do Spark DataFrame jest całkiem prosta:

%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

Aby pobrać go za pomocą iskry scala, musisz wykonać następujące czynności:

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

Możesz również pobrać bazowy plik rdd:

val rdd = df.rdd