Nic*_*ick 6 python r dataframe pandas databricks
我正在 Databricks 笔记本中编写 R 代码,该代码在 R 中执行多项操作。清理数据帧后,我想使用“%python”在 python 单元中调用它,因此使用 python 代码继续对数据帧进行操作。
因此,我想在 python 块内将我的 R 数据框转换为 Pandas 数据框。有人知道怎么做这个吗?谢谢!
Kei*_*ith 11
我认为不同内核之间的命名空间在 Databricks 上是分开的。因此,即使在同一个笔记本中,您也不会在 Python 中看到 R 变量,反之亦然。
我的理解是,有两种方法可以在内核之间共享数据:1)使用文件系统(csv等)和2)临时Databricks表。我认为后者是更典型的路线[1]。
%r
write.csv(df, "/FileStore/tmp.csv")
Run Code Online (Sandbox Code Playgroud)
%python
import pandas as pd
df = pd.read_csv("/FileStore/tmp.csv")
Run Code Online (Sandbox Code Playgroud)
%r
library(SparkR)
sparkR.session()
df <- read.df("path/to/original_file.csv", source="csv")
registerTempTable(df, "tmp_df")
Run Code Online (Sandbox Code Playgroud)
%python
df = spark.sql("select * from tmp_df").toPandas()
Run Code Online (Sandbox Code Playgroud)
小智 2
注意:自 rpy2 版本 3.3.0 起,显式转换按如下方式完成
import rpy2.robjects as ro
dt = pd.DataFrame()
Run Code Online (Sandbox Code Playgroud)
到 R 数据框
r_dt = ro.conversion.py2rpy(dt)
Run Code Online (Sandbox Code Playgroud)
转至 pandas 数据框
pd_dt = ro.conversion.rpy2py(r_dt)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6308 次 |
| 最近记录: |