Eu sou novo para Zeppelin e eu há coisas que eu simplesmente não entendo.
Eu baixei uma tabela de um banco de dados com python,então, eu gostaria de convertê-lo em um RDD. Mas eu recebi o erro que a tabela não foi encontrada. Eu acho que há um problema em criar as tabelas criadas com outros intérpretes, mas eu realmente não sei ... Eu tentei com esta e esta pergunta, mas ainda não funciona, eles criam o df diretamente com faísca. Qualquer ajuda seria tão ú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)
Respostas:
2 para resposta № 1A conversão de um DataFrame do Pandas em um DataFrame do Spark é bastante direta:
%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 buscá-lo com scala spark você só precisa fazer o seguinte:
%spark
val df = sqlContext.sql("select * from df")
df.show()
// +---+---+
// | 0| 1|
// +---+---+
// | 1| 2|
// +---+---+
Você também pode obter o rdd subjacente:
val rdd = df.rdd