Python 是否有有效的方法将数据帧转换为H2O帧?

Python 是否有有效的方法将数据帧转换为H2O帧?,python,pandas,performance,dataframe,h2o,Python,Pandas,Performance,Dataframe,H2o,我有一个熊猫数据帧,我需要把它转换成H2O帧。我使用以下代码- 代码: # Convert pandas dataframe to H2O frame start_time = time.time() input_data_matrix = h2o.H2OFrame(input_df) logger.debug("3. Time taken to convert H2O Frame- " + str(time.time() - start_time)) 输出: # Convert pandas

我有一个熊猫数据帧,我需要把它转换成H2O帧。我使用以下代码-

代码:

# Convert pandas dataframe to H2O frame
start_time = time.time()
input_data_matrix = h2o.H2OFrame(input_df)
logger.debug("3. Time taken to convert H2O Frame- " + str(time.time() - start_time))
输出:

# Convert pandas dataframe to H2O frame
start_time = time.time()
input_data_matrix = h2o.H2OFrame(input_df)
logger.debug("3. Time taken to convert H2O Frame- " + str(time.time() - start_time))
2019-02-05 04:38:55238记录器调试3。转化H2O所需的时间 机架-9320.119945764542

数据帧(即,
input_df
)大小为183K x 435,没有空值或NaN值

大约需要2个小时。有没有更好的方法来执行此操作

  • 将熊猫数据帧保存到csv文件。(如果您首先从csv文件加载,并且没有对其进行任何数据扫描,则跳过此步骤。)

  • 将csv文件放在h2o服务器可以看到的地方。(如果在同一台计算机上运行客户端和服务器,则情况已经如此。)

  • 使用
    h2o.import_file()
    (优先于
    h2o.upload_file()
    h2o.H2OFrame()

  • h2o.import_file()
    是将数据导入h2o的最快方法,但该文件必须在服务器上可见。在处理远程集群时,这可能意味着将其上载到该服务器文件系统,或将其放在web服务器、HDFS集群或AWS S3上,等等


    (之所以
    h2o.upload_file()
    速度较慢,是因为它会将数据从客户端发送到服务器,而
    h2o.H2OFrame()
    速度较慢,因为它会将熊猫数据导出到临时csv文件,然后使用
    h2o.upload_file()
    ,然后删除临时文件。)

    交叉链接,可能重复,但不确定答案是否正确:特别是此注释-->@aws\u peedient该注释说明您的数据帧是否具有NaN值或缺少值。这是我没有的。问题是有
    NaN
    ,但这条评论仍然适用,你必须写出从python到java内存的整个数据帧,然后将其发送到云,评论建议通过减少
    pandas
    h20
    的步骤来减少工作量,因此我确实认为它适用于
    h2o.H2OFrame()
    的工作原理。I/O操作(即从磁盘回写和回读)不是会变慢吗?@EngineeredBrain
    h2o.H2OFrame()
    在最佳情况下将是最慢的。也就是说,它是一个方便的函数,执行步骤1、2和3。但当你发现这是一个瓶颈时,你通常可以做得更好,即如果你打算使用csv文件2次以上,第一次之后自己做步骤1是免费的;如果服务器在本地主机上运行,则可以跳过步骤2;如果您正在运行多节点群集,
    import\u file()
    可以是多线程的。