51zero / eel-sdk

Big Data Toolkit for the JVM
Apache License 2.0
145 stars 35 forks source link

Support Hive MAP columns #388

Open esamson opened 5 years ago

esamson commented 5 years ago

I get this error when using HiveSink to write to a Hive table with a MAP<STRING, STRING> column.

java.lang.RuntimeException: Unsupported hive type [map<string,string>]
        at scala.sys.package$.error(package.scala:27)
        at io.eels.component.hive.HiveSchemaFns$.fromHiveType(HiveSchemaFns.scala:56)
        at io.eels.component.hive.HiveSchemaFns$.fromHive(HiveSchemaFns.scala:25)
        at io.eels.component.hive.HiveSchemaFns$.fromHiveField(HiveSchemaFns.scala:22)
        at io.eels.component.hive.HiveOps$$anonfun$3.apply(HiveOps.scala:144)
        at io.eels.component.hive.HiveOps$$anonfun$3.apply(HiveOps.scala:144)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
        at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
        at scala.collection.Iterator$class.foreach(Iterator.scala:891)
        at scala.collection.AbstractIterator.foreach(Iterator.scala:1334)
        at scala.collection.IterableLike$class.foreach(IterableLike.scala:72)
        at scala.collection.AbstractIterable.foreach(Iterable.scala:54)
        at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
        at scala.collection.AbstractTraversable.map(Traversable.scala:104)
        at io.eels.component.hive.HiveOps.schema(HiveOps.scala:144)
        at io.eels.component.hive.HiveSink.open(HiveSink.scala:124)
        at io.eels.component.hive.HiveSink$$anonfun$open$1.apply(HiveSink.scala:88)
        at io.eels.component.hive.HiveSink$$anonfun$open$1.apply(HiveSink.scala:88)
        at scala.collection.generic.GenTraversableFactory.tabulate(GenTraversableFactory.scala:148)
        at io.eels.component.hive.HiveSink.open(HiveSink.scala:88)
        at io.eels.datastream.SinkAction.execute(SinkAction.scala:46)
        at io.eels.datastream.DataStream$class.to(DataStream.scala:727)
        at io.eels.datastream.DataStream$$anon$50.to(DataStream.scala:772)
        at io.eels.datastream.DataStream$class.to(DataStream.scala:726)
        at io.eels.datastream.DataStream$$anon$50.to(DataStream.scala:772)
        ...