将在R中创建的序列化对象传递给Python,然后在Python脚本中取消序列化该对象

将在R中创建的序列化对象传递给Python,然后在Python脚本中取消序列化该对象,python,r,azure,azure-machine-learning-studio,Python,R,Azure,Azure Machine Learning Studio,我正在使用Azure机器学习,我想将在R脚本中创建的二进制文件传递给Python脚本,以便在Python中进一步处理它 为了传递在R中创建的二进制文件,我序列化了数据。 但是如何在python脚本中取消序列化数据以恢复原始数据 R代码如下 serialized <- as.integer(serialize(data,NULL)) dataset <- data.frame(serialized,stringsAsFactors=FALSE) maml.mapOutputPort("

我正在使用Azure机器学习,我想将在R脚本中创建的二进制文件传递给Python脚本,以便在Python中进一步处理它

为了传递在R中创建的二进制文件,我序列化了数据。 但是如何在python脚本中取消序列化数据以恢复原始数据

R代码如下

serialized <- as.integer(serialize(data,NULL))
dataset <- data.frame(serialized,stringsAsFactors=FALSE)
maml.mapOutputPort("dataset");

serialized如果您使用的是数据帧,您可以尝试使用Feather。它是由制作熊猫的人制作的:)

否则,您可以使用“rb”设置读取Python中的二进制文件:


f=open(“myfile”,“rb”)
根据我的经验,我认为没有必要在Azure ML上通过序列化将R输出与Python输入连接起来。您可以尝试使用
转换为CSV
模块来连接它们,如下图所示

executer脚本中的代码如下所示

dataset <- data.frame(data,stringsAsFactors=FALSE)
maml.mapOutputPort("dataset");

数据集。。。这可能是某种依赖于语言的二进制序列化格式。Python不知道这种格式,除非有人用Python编写了一个库来理解这种格式(这可能不是通用的),否则您必须以自己的方式编写。或者使用其他序列化格式。