LoginSignup
0
0

More than 5 years have passed since last update.

ml_predictを実行するとjava.lang.IllegalArgumentExceptionが発生する

Last updated at Posted at 2018-10-29

学習時に使用したカラム名が存在しない場合に発生する。

sources <- spark_read_csv(sc, "sources", path=input_dir, delimiter = "\t")
sources_2 <- spark_read_csv(sc, "sources_2", path=input_2_dir, delimiter = "\t")
names(sources) <- c(
    "label",
    "aaaa",
    "bbbb"
)

model <- sources %>%
    ml_decision_tree(label ~ .)

output_data <- ml_predict(model, sources_2) # Error!!!

エラーログ

Error: java.lang.IllegalArgumentException: Field "stridx_5b58a6f3eaa1" does not exist.
Available fields: 249xHStF, 01, 43, 13, 38021, 52, 1455, 07, 08, 14, 010, 111, 012, 013, to_dt
        at org.apache.spark.sql.types.StructType$$anonfun$apply$1.apply(StructType.scala:267)
        at org.apache.spark.sql.types.StructType$$anonfun$apply$1.apply(StructType.scala:267)
        at scala.collection.MapLike$class.getOrElse(MapLike.scala:128)
        at scala.collection.AbstractMap.getOrElse(Map.scala:59)
        at org.apache.spark.sql.types.StructType.apply(StructType.scala:266)
        at org.apache.spark.ml.util.SchemaUtils$.checkNumericType(SchemaUtils.scala:71)
        at org.apache.spark.ml.feature.OneHotEncoderBase$$anonfun$validateAndTransformSchema$2.apply(OneHotEncoderEstimator.scala:83)
        at org.apache.spark.ml.feature.OneHotEncoderBase$$anonfun$validateAndTransformSchema$2.apply(OneHotEncoderEstimator.scala:83)
        at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33)
        at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186)
        at org.apache.spark.ml.feature.OneHotEncoderBase$class.validateAndTransformSchema(OneHotEncoderEstimator.scala:83)
        at org.apache.spark.ml.feature.OneHotEncoderModel.validateAndTransformSchema(OneHotEncoderEstimator.scala:209)
        at org.apache.spark.ml.feature.OneHotEncoderModel.transformSchema(OneHotEncoderEstimator.scala:297)
        at org.apache.spark.ml.PipelineModel$$anonfun$transformSchema$5.apply(Pipeline.scala:311)
        at org.apache.spark.ml.PipelineModel$$anonfun$transformSchema$5.apply(Pipeline.scala:311)
        at scala.collection.IndexedSeqOptimized$class.foldl(IndexedSeqOptimized.scala:57)
        at scala.collection.IndexedSeqOptimized$class.foldLeft(IndexedSeqOptimized.scala:66)
        at scala.collection.mutable.ArrayOps$ofRef.foldLeft(ArrayOps.scala:186)
        at org.apache.spark.ml.PipelineModel.transformSchema(Pipeline.scala:311)
        at org.apache.spark.ml.feature.RFormulaModel.transformSchema(RFormula.scala:348)
        at org.apache.spark.ml.PipelineModel$$anonfun$transformSchema$5.apply(Pipeline.scala:311)
        at org.apache.spark.ml.PipelineModel$$anonfun$transformSchema$5.apply(Pipeline.scala:311)
        at scala.collection.IndexedSeqOptimized$class.foldl(IndexedSeqOptimized.scala:57)
        at scala.collection.IndexedSeqOptimized$class.foldLeft(IndexedSeqOptimized.scala:66)
        at scala.collection.mutable.ArrayOps$ofRef.foldLeft(ArrayOps.scala:186)
        at org.apache.spark.ml.PipelineModel.transformSchema(Pipeline.scala:311)
        at org.apache.spark.ml.PipelineStage.transformSchema(Pipeline.scala:74)
        at org.apache.spark.ml.PipelineModel.transform(Pipeline.scala:305)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at sparklyr.Invoke.invoke(invoke.scala:139)
        at sparklyr.StreamHandler.handleMethodCall(stream.scala:123)
        at sparklyr.StreamHandler.read(stream.scala:66)
        at sparklyr.BackendHandler.channelRead0(handler.scala:51)
        at sparklyr.BackendHandler.channelRead0(handler.scala:4)
        at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:310)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:284)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1359)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:935)
        at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:138)
        at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:645)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:580)
        at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:497)
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:459)
        at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)
        at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)
        at java.lang.Thread.run(Thread.java:748)
Execution halted
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0