Support Hive MAP columns
- Dominant language
- Scala
- Stars
- 147
- Forks
- 32
- PR merge metrics
- No merged PRs in 30d
Description
I get this error when using HiveSink to write to a Hive table with a `MAP` column.
```
java.lang.RuntimeException: Unsupported hive type [map]
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)
...
```
Contributor guide
No contributing guide indexed for this repository
Research direction
The error originates in HiveSchemaFns.scala at line 56, where the fromHiveType function does not handle the MAP type. Examine the Hive type system mapping in that file and the surrounding schema conversion logic. Look for existing support for other complex types like ARRAY or STRUCT to understand the pattern. Adding MAP support will likely involve updating the type matching and creating an appropriate EEL schema field.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- scala
- Domain
- data-engineering, databases
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 40/100