将变量从 Scala 传递到 Databricks 中的 Python

Pass variables from Scala to Python in Databricks

我正在使用 Databricks 并尝试在同一个 Scala 笔记本中将数据帧从 Scala 传递到 Python。我使用

将数据帧从 Python 传递给 Spark
%python
python_df.registerTempTable("temp_table")


val scalaDF = table("temp_table")

如何反过来做同样的事情?非常感谢!!

反过来也差不多。在 Scala 中:

scalaDF.registerTempTable("some_table")

在Python中:

spark.table("some_table")

如果您使用最新的 Spark 版本,您应该使用 createOrReplaceTempView 代替 registerTempTable

您可以使用 .createOrReplaceTempView() 方法或 sql()。

这是一个示例,将数据帧从 scala python 传递到 sql 并沿途进行修改...然后返回到 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)