我正在使用Databricks,并试图在同一个Scala笔记本中将一个数据帧从Scala传递到Python。我使用以下命令从Python向Spark传递了一个数据帧:
%python
python_df.registerTempTable("temp_table")
val scalaDF = table("temp_table")
我如何反向做同样的事情呢?非常感谢!
发布于 2017-08-26 02:22:01
反之亦然。在Scala中:
scalaDF.registerTempTable("some_table")
在Python中:
spark.table("some_table")
如果你使用最新的Spark版本,你应该用createOrReplaceTempView
代替registerTempTable
。
发布于 2020-11-21 21:25:38
您可以使用.createOrReplaceTempView()方法或sql()。
下面是一个示例,将数据帧从scala、python传递到sql,并在...and返回scala的过程中进行修改。
%scala
var df = spark.range(0,10).selectExpr("*","'scala' language_origin")
df.createOrReplaceTempView("tableName")
display(df)
%python
df = sql("select * from tableName")
df2 = df.selectExpr("*","'python' language_added")
df2.createOrReplaceTempView("tableName")
display(df2)
%sql
create or replace temp view tableName as
select *, 'sql' language_added from tableName;
select * from tableName
%scala
df = sql("select * from tableName")
display(df)
https://stackoverflow.com/questions/45884823
复制相似问题