首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用sqoop从mySql服务器将JSON字段数据导入Hive表

问如何使用sqoop从mySql服务器将JSON字段数据导入Hive表
EN

Stack Overflow用户
提问于 2016-07-27 05:51:08
回答 1查看 1.1K关注 0票数 0

我在MySQL服务器中有一个表名MySQL,其中有两个字段EmpID (INT)和Details (nvarchar)。Details字段包含类似于JSON的字符串

代码语言:javascript
复制
{ "name": "Michel","address":{"house no":"12","street":"Johnson road","city":"New Delhi","country":"INDIA"}}

{ "name": "John","address":{"house no":"99","street":"Johnson road","city":"London","country":"UK"}}

我希望将Details字段JSON数据导入到hive表EmpHiveStore中,并对hive表进行如下查询

代码语言:javascript
复制
SELECT name,address.street from EmpHiveStore;

有没有办法使用sqoop将JSON字段数据导入Hive表?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-27 07:11:47

Sqoop在这里的工作是将数据从关系数据库管理系统(在您的例子中是MySQL)导入到Hive。

为此,需要使用sqoop导入命令。

代码语言:javascript
复制
sqoop import \
--connect jdbc:mysql://mysql.example.com/testdb \
--username root \
--password root \
--table EmpData \
--columns Details \
--hive-import \
--hive-table EmpHiveStore

如果不存在,这将创建蜂巢表。Sqoop的工作在这里完成,。Hive将把这些数据存储在字符串中。在Hive中没有特殊的JSON类型。所以,您将无法执行这样的查询

代码语言:javascript
复制
SELECT name,address.street from EmpHiveStore;

直接通过蜂巢。

您可以使用

代码语言:javascript
复制
show create table EmpHiveStore;

表中只有1列,它有JSON数据。所以它基本上是HDFS中的一个JSON文件。

您希望查询嵌套的JSON。您需要另一个工具来执行这样的查询。为此,您可以探索像钻和星星之火SQL这样的SQL查询引擎。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38604707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档