首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何读取带有JSON字符串的列的Hive表?

如何读取带有JSON字符串的列的Hive表?
EN

Stack Overflow用户
提问于 2017-06-28 22:09:55
回答 1查看 2K关注 0票数 0

我有一个蜂窝表列(Json_String字符串),它有大约1000行,其中每一行都是一个具有相同结构的Json。我正在试着将json读入Dataframe,如下所示

代码语言:javascript
运行
复制
val df = sqlContext.read.json("select Json_String from json_table") 

但是它会弹出下面的异常

代码语言:javascript
运行
复制
java.io.IOException: No input paths specified in job

是否有任何方法可以读取所有行到dataframe中,就像我们使用野生卡处理Json文件一样。

代码语言:javascript
运行
复制
val df = sqlContext.read.json("file:///home/*.json")
EN

回答 1

Stack Overflow用户

发布于 2017-06-29 02:58:49

我认为您所要求的是像往常一样读取Hive表并使用json函数转换JSON列。

from_json(e: from_json,schema: StructType):Column将包含JSON字符串的列解析为具有指定模式的StructType。如果字符串不可解析,则返回null。

如果您在代码中使用sqlContext,那么恐怕您使用的是Spark < 2.1.0,它不提供from_json (在2.1.0中添加)。

然后,解决方案是使用自定义用户定义函数(UDF)自己进行解析。

val =sqlContext.read.json(“从json_table中选择Json_String”)

由于json操作符需要磁盘上JSON文件的路径(不是对Hive表执行查询的结果),所以上面的内容无法工作。

JSON (path: String*):DataFrame加载一个JSON文件(JSON、文本格式或换行符分隔的JSON),并以DataFrame的形式返回结果。

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

https://stackoverflow.com/questions/44813337

复制
相关文章

相似问题

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