python - Databricks:如何从 R Dataframe 切换到 Pandas Dataframe(R 到 python 在同一个笔记本中)
问题描述
我正在 Databricks 笔记本中编写 R 代码,该笔记本在 R 中执行多项操作。清理数据帧后,我想使用“%python”在 python 单元中调用它,因此使用 python 代码继续对数据帧进行操作。
因此,我想在 python 块中将我的 R Dataframe 转换为 Pandas 数据帧。有人知道怎么做这个吗?谢谢!
解决方案
我认为不同内核之间的命名空间在 Databricks 上是分开的。因此,即使在同一个笔记本中,您也不会在 Python 中看到 R 变量,反之亦然。
我的理解是,有两种方法可以在内核之间共享数据:1)使用文件系统(csv 等)和 2)临时 Databricks 表。我相信后者是更典型的路线[1]。
- 文件系统:
%r
write.csv(df, "/FileStore/tmp.csv")
%python
import pandas as pd
df = pd.read_csv("/FileStore/tmp.csv")
- 临时数据块表:
%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()
推荐阅读
- html - 如何在网站底部制作页码?
- python - 我应该如何创建变量 x 以便我可以输出值 (1,2), f(2,2), f(3,2), f(4,2),...,f(10,2) ?
- css - 如何增加 b-tooltip 宽度?
- python - 如何为 python 3.7 安装 folium
- python - 从另一个文件替换字符串和文件
- javascript - 使用 jQuery 解析 HTML、剥离脚本和返回序列化 HTML 的最简单方法是什么?
- javascript - React js 大日历更改语言天数
- javascript - 我想将数据从 javascript 代码传递到烧瓶服务器
- java - android studio中的默认项目带有错误
- laravel - 将选择选项传递给 laravel 中的控制器