在 zeppelin 中将 pandas 数据帧转换为 RDD
Convert pandas dataframe to RDD in zeppelin
我是 Zeppelin 的新手,有些事情我不明白。
我用 python 从数据库下载了一个 table,然后,我想将它转换为 RDD。但是我得到了找不到 table 的错误。
我认为用另一个解释器创建的 tables 存在问题,但我真的不知道......我尝试了 this and 问题但仍然不起作用,他们直接用 spark 创建 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)
将 Pandas DataFrame 转换为 Spark DataFrame 非常简单:
%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 获取它,您只需执行以下操作:
%spark
val df = sqlContext.sql("select * from df")
df.show()
// +---+---+
// | 0| 1|
// +---+---+
// | 1| 2|
// +---+---+
你还可以获得底层的rdd :
val rdd = df.rdd
我是 Zeppelin 的新手,有些事情我不明白。
我用 python 从数据库下载了一个 table,然后,我想将它转换为 RDD。但是我得到了找不到 table 的错误。
我认为用另一个解释器创建的 tables 存在问题,但我真的不知道......我尝试了 this and
%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)
将 Pandas DataFrame 转换为 Spark DataFrame 非常简单:
%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 获取它,您只需执行以下操作:
%spark
val df = sqlContext.sql("select * from df")
df.show()
// +---+---+
// | 0| 1|
// +---+---+
// | 1| 2|
// +---+---+
你还可以获得底层的rdd :
val rdd = df.rdd