Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Databricks:如何从R数据帧切换到Pandas数据帧(在同一个笔记本中从R切换到python)_Python_R_Pandas_Dataframe_Databricks - Fatal编程技术网

Databricks:如何从R数据帧切换到Pandas数据帧(在同一个笔记本中从R切换到python)

Databricks:如何从R数据帧切换到Pandas数据帧(在同一个笔记本中从R切换到python),python,r,pandas,dataframe,databricks,Python,R,Pandas,Dataframe,Databricks,我正在DataRicks笔记本中编写R代码,该笔记本在R中执行多个操作。清理完数据帧后,我希望在python单元中使用“%python”调用它,从而使用python代码继续对数据帧进行操作 因此,我希望在python块中将我的R数据帧转换为Pandas数据帧。有人知道怎么做吗?谢谢 注意:自rpy2 3.3.0版以来,显式转换如下所示 import rpy2.robjects as ro dt = pd.DataFrame() 到R数据帧 r_dt = ro.conversion.py2rp

我正在DataRicks笔记本中编写R代码,该笔记本在R中执行多个操作。清理完数据帧后,我希望在python单元中使用“%python”调用它,从而使用python代码继续对数据帧进行操作


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

注意:自rpy2 3.3.0版以来,显式转换如下所示

import rpy2.robjects as ro

dt = pd.DataFrame()
到R数据帧

r_dt = ro.conversion.py2rpy(dt)
pd_dt = ro.conversion.rpy2py(r_dt)
到数据帧

r_dt = ro.conversion.py2rpy(dt)
pd_dt = ro.conversion.rpy2py(r_dt)

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

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

  • 文件系统:
  • 临时数据记录表:

  • [1]

    查看R包可能是值得的,因为它促进了R/Python的互操作性。不过,我不知道这是否是使用databricks的方法——他们可能有另一种解决方案。你应该将其转换为Spark数据帧,然后再转换回Pandas,尽管你应该能够完全依赖PySpark,但你想做什么?不幸的是,它在databricks环境中不起作用。python代码中的R对象chuck将找不到NameError:名称'R_dt'未定义我遇到了完全相同的问题:无法轻松地在R和与Databricks兼容的dfs之间切换。r2py不起作用,feather不起作用,甚至尝试将R df转换为Spark df,但当我尝试在下面的Python单元上运行toPandas()时,它仍然找不到。你有没有找到解决方法?临时视图是最好的方法。。。
    %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()