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 有效。
我得到了一个包含 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 有效。