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 № 1Konwersja 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