2

我在 HDFS 集群上有一个 .xdf 文件,大约 10 GB,有近 70 列。我想将它读入一个 R 对象,以便我可以执行一些转换和操作。我试着用谷歌搜索它并提出了两个功能:

rxReadXdf

rxXdfToDataFrame

谁能告诉我首选的功能,因为我想读取数据并在集群的每个节点上并行执行转换?

此外,如果我以块的形式读取和执行转换,是否必须合并每个块的输出?

提前感谢您的帮助。

干杯,阿米特

4

1 回答 1

2

请注意,rxReadXdfrxXdfToDataFrame有不同的论点,做的事情略有不同:

  • rxReadXdf有一个 numRows 参数,所以如果你想读取数据集的前 1000 行(比如说),请使用它
  • rxXdfToDataFrame支持rxTransforms,所以如果你想在读取数据的同时操作数据,请使用它
  • rxXdfToDataFrame还有 maxRowsByCols 参数,这是另一种限制输入大小的方法

因此,在您的情况下,您想要使用它,rxXdfToDataFrame因为除了读取数据之外,您还要转换数据。rxReadXdf如果您只想读取数据(无转换),则在本地计算上下文中会更快一些。HDFS 可能也是如此,但我还没有检查过。

但是,您确定要将数据读入数据框中吗?您可以使用rxDataStep在 xdf 文件上运行(几乎)任意 R 代码,同时仍以该格式保留数据。有关如何使用转换参数的信息,请参阅链接的文档页面。

于 2015-06-17T01:26:40.270 回答