在Databricks中将变量从Scala传递给Python

时间:2017-08-25 15:29:50

标签: python apache-spark pyspark apache-spark-sql databricks

我正在使用Databricks并尝试在同一个Scala笔记本中将数据帧从Scala传递到Python。我使用以下命令将数据帧从Python传递给Spark:

%python
python_df.registerTempTable("temp_table")


val scalaDF = table("temp_table")

我如何反向做同样的事情?非常感谢你!!

2 个答案:

答案 0 :(得分:2)

反过来也差不多了。在斯卡拉:

scalaDF.registerTempTable("some_table")

在Python中:

spark.table("some_table")

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

答案 1 :(得分:0)

您可以使用.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)