我在HDFS集群上有一个.xdf文件,大约10 GB,有近70列。我想将它读入一个R对象,以便我可以执行一些转换和操作。我尝试了谷歌,并提出了两个功能:
rxReadXdf
rxXdfToDataFrame
任何人都可以告诉我这个的首选功能,因为我想阅读数据&在集群的每个节点上并行执行转换?
此外,如果我在块中读取并执行转换,是否必须合并每个块的输出?
提前感谢您的帮助。
干杯, 阿米特
答案 0 :(得分:2)
请注意,rxReadXdf
和rxXdfToDataFrame
具有不同的参数,并且稍有不同:
rxReadXdf
有一个numRows参数,所以如果你想读取数据集的前1000行(比如说),请使用它。rxXdfToDataFrame
支持rxTransforms,因此如果您想要除了阅读数据之外还要操作数据,请使用此功能rxXdfToDataFrame
也有maxRowsByCols参数,这是限制输入大小的另一种方法因此,在您的情况下,您希望使用rxXdfToDataFrame
,因为除了阅读数据之外,您还要转换数据。如果您只想读取数据(无转换),rxReadXdf
在本地计算上下文中会更快一些。这可能也适用于HDFS,但我没有检查过这个。
但是,您确定要将数据读入数据框吗?您可以使用rxDataStep
在xdf文件上运行(几乎)任意R代码,同时仍然以该格式保留数据。有关如何使用转换参数的信息,请参阅链接的文档页面。