我正在从CSV文件中读取H2Oframe
:
val h2oFrame=新h2oFrame(新文件(inputCsvFilePath))
如何执行等效的 .filter()
操作(可用于 Spark DataFrame
或 RDD
)。例如,如何获得一个新的 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 引发
我建议你这样做-通过火花。来自常见问题解答:
如何使用苏打水过滤 H2OFrame?
过滤列很容易:只需删除不必要的列或创建一个新的
过滤行有点困难。有两种方法:
为输入/输出样本创建一个额外的二进制向量,保持 1/0(确保在计算中考虑这个额外的向量)。这个解决方案非常便宜,因为你不复制数据 - 只需在数据漫游中创建一个简单的向量。
或
使用过滤后的行创建一个新框架。这是一项更困难的任务,因为您必须复制数据。作为参考,请查看Frame(H2OFrame)上的#