我有一个hive表,我想加载到mongo中。 我添加了必要的hadoop-mongo罐子,我创建了我的mongo表,如下所示:
CREATE TABLE mongo_tab
( subscribers STRUCT
<
persons_data: STRUCT
<last_name: string,
first_name: string >
contracts_persons:STRUCT
<product_infos: STRUCT <product_id: INT, product_name: STRING>,
captial: STRUCT <capital1: string, capital2: string >
>,
employees: STRUCT
< n_emp: INT,
nom_emp: string>
>
)
STORED BY 'com.mongodb.hadoop.hive.MongoStorageHandler'
WITH SERDEPROPERTIES ('mongo.columns.mapping'='{"last_name":"last_name", "first_name":"first_name","product_id":"product_id, "product_name": "product_name", "capital1":"capital1", "capital2": "capital2", "n_emp":"n_emp", "nom_emp":"nom_emp"},
}')
TBLPROPERTIES(&#39; mongo.uri&#39; = my_mongo_server_uri&#39)
当我将存储在hive表中的数据插入到我的mongo表中时,我收到此错误: &#34;无法插入目标表,因为列号/类型不同&#34;。
我的问题是:
是否可以使用mongo架构中的子文档将数据从配置单元表加载到mongo?或者它必须是一个平面文件?
如果我想避免在mongo中使用平面文档结构,我如何移动数据?
提前感谢您的回答。