首页 > 解决方案 > Databricks:如何从 R Dataframe 切换到 Pandas Dataframe(R 到 python 在同一个笔记本中)

问题描述

我正在 Databricks 笔记本中编写 R 代码,该笔记本在 R 中执行多项操作。清理数据帧后,我想使用“%python”在 python 单元中调用它,因此使用 python 代码继续对数据帧进行操作。

因此,我想在 python 块中将我的 R Dataframe 转换为 Pandas 数据帧。有人知道怎么做这个吗?谢谢!

标签: pythonrpandasdataframedatabricks

解决方案


我认为不同内核之间的命名空间在 Databricks 上是分开的。因此,即使在同一个笔记本中,您也不会在 Python 中看到 R 变量,反之亦然。

我的理解是,有两种方法可以在内核之间共享数据:1)使用文件系统(csv 等)和 2)临时 Databricks 表。我相信后者是更典型的路线[1]。

  1. 文件系统:
%r
write.csv(df, "/FileStore/tmp.csv")
%python
import pandas as pd
df = pd.read_csv("/FileStore/tmp.csv")
  1. 临时数据块表:
%r
library(SparkR)
sparkR.session()
df <- read.df("path/to/original_file.csv", source="csv")
registerTempTable(df, "tmp_df")
%python
df = spark.sql("select * from tmp_df").toPandas()

[1] https://forums.databricks.com/questions/16039/use-python-and-r-variable-in-the-same-notebook-amo.html


推荐阅读