我应该使用哪些功能来处理HDFS上的XDF文件?

时间:2015-06-10 09:47:40

标签: r hadoop revolution-r

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

rxReadXdf

rxXdfToDataFrame

任何人都可以告诉我这个的首选功能,因为我想阅读数据&在集群的每个节点上并行执行转换?

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

提前感谢您的帮助。

干杯, 阿米特

1 个答案:

答案 0 :(得分:2)

请注意,rxReadXdfrxXdfToDataFrame具有不同的参数,并且稍有不同:

  • rxReadXdf有一个numRows参数,所以如果你想读取数据集的前1000行(比如说),请使用它。
  • rxXdfToDataFrame支持rxTransforms,因此如果您想要除了阅读数据之外还要操作数据,请使用此功能
  • rxXdfToDataFrame也有maxRowsByCols参数,这是限制输入大小的另一种方法

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

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