提问者:小点点

如何根据列值过滤H2OFrame(scala)中的行?


我正在从CSV文件中读取H2Oframe

val h2oFrame=新h2oFrame(新文件(inputCsvFilePath))

如何执行等效的 .filter() 操作(可用于 Spark DataFrameRDD)。例如,如何获得一个新的 H2OFrame,其中“标签”(列名)是

我已经尝试转换为<code>org.apache.spark.sql。DataFrame如下(简化示例):

val df = asDataFrame(h2oFrame)
val dff = df.filter(s"label > 1")
print(dff.toString(0,15))

但是这似乎抛出了如下所示的< code>OutOfMemoryError:

异常:java.lang.OutOfMemoryError 从线程“Executor task launch worker-2”中的 UncaughtExceptionHandler 引发


共1个答案

匿名用户

我建议你这样做-通过火花。来自常见问题解答:

如何使用苏打水过滤 H2OFrame?

过滤列很容易:只需删除不必要的列或创建一个新的

过滤行有点困难。有两种方法:

为输入/输出样本创建一个额外的二进制向量,保持 1/0(确保在计算中考虑这个额外的向量)。这个解决方案非常便宜,因为你不复制数据 - 只需在数据漫游中创建一个简单的向量。

使用过滤后的行创建一个新框架。这是一项更困难的任务,因为您必须复制数据。作为参考,请查看Frame(H2OFrame)上的#