我有一个蜂窝表列(Json_String字符串),它有大约1000行,其中每一行都是一个具有相同结构的Json。我正在试着将json读入Dataframe,如下所示
val df = sqlContext.read.json("select Json_String from json_table")
但是它会弹出下面的异常
java.io.IOException: No input paths specified in job
是否有任何方法可以读取所有行到dataframe中,就像我们使用野生卡处理Json文件一样。
val df = sqlContext.read.json("file:///home/*.json")
发布于 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的形式返回结果。
https://stackoverflow.com/questions/44813337
复制相似问题