h2o as.h2o(data.frame) Error: Cannot determine file type

h2o as.h2o(data.frame) Error: Cannot determine file type

我得到了一个包含 15458 个对象和 113 个变量的数据框。我想用 as.h2o() 将其转换为 h2o 对象。但我收到以下错误:

> data.h2o <- as.h2o(data.model)

ERROR: Unexpected HTTP Status code: 500 Internal Server Error (url = http://127.0.0.1:54321/3/ParseSetup)

java.lang.RuntimeException
 [1] "water.MRTask.getResult(MRTask.java:489)"                           "water.MRTask.doAll(MRTask.java:400)"                              
 [3] "water.parser.ParseSetup.guessSetup(ParseSetup.java:211)"           "water.api.ParseSetupHandler.guessSetup(ParseSetupHandler.java:29)"
 [5] "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)"       "sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)"      
 [7] "sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)"   "java.lang.reflect.Method.invoke(Unknown Source)"                  
 [9] "water.api.Handler.handle(Handler.java:56)"                         "water.api.RequestServer.handle(RequestServer.java:676)"           
[11] "water.api.RequestServer.serve(RequestServer.java:613)"             "water.NanoHTTPD$HTTPSession.run(NanoHTTPD.java:437)"              
[13] "java.lang.Thread.run(Unknown Source)"                             

Error in .h2o.doSafeREST(conn = conn, h2oRestApiVersion = h2oRestApiVersion,  : 
  water.DException$DistributedException: from /127.0.0.1:54321; by class water.parser.ParseSetup$GuessSetupTsk; class water.exceptions.H2OParseSetupException: Problem parsing C:/Users/[...]/AppData/Local/Temp/RtmpieIjLY/file25904ef1231d.csv_2
Cannot determine file type.

当然 csv_2 不是有效的文件类型。但我无法影响文件生成。

转换小型测试数据帧有效。

有什么想法吗?

问题似乎是列名中的非 ASCII 值。

#clean colnames
colnames(data.model) <- iconv(colnames(data.model), to='ASCII', sub='')

已修复。

我在读取 csv 文件时遇到了类似的问题。我将问题追溯到名为 July4th 的列。我猜 h2o 不喜欢中间埋有数字的列名。将其重命名为 July4 有效。