7

我正在尝试使用 zeppelin 中的 sqlContext.jsonFile 访问一些 json 数据...

以下代码执行没有任何错误:

import sys.process._
val sqlCon = new org.apache.spark.sql.SQLContext(sc)
val jfile = sqlCon.jsonFile(s"file:///usr/local/src/knoldus/projects/scaladay_data/scalaDays2015Amsterdam_tweets.json")

import sqlContext.implicits._
jfile.registerTempTable("jTable01")

输出 :

导入 sys.process._ sqlCon: org.apache.spark.sql.SQLContext = org.apache.spark.sql.SQLContext@7034473 jfile: org.apache.spark.sql.DataFrame = [ id: struct, content: string,标签:数组,分数:结构,会话:字符串,时间戳:bigint,tweetId:bigint,用户名:字符串] 导入 sqlContext.implicits。

接下来我验证我刚刚注册的表名

sqlCon.tableNames().foreach(println)

输出 :

jTable01

但是当我尝试运行时出现错误:

%sql
select * from jTable01

输出 :

没有这样的表 jTable01;第 1 行第 14 行

同时,当我为“银行”运行教程示例时,它可以工作....我能做出的唯一区别是,在银行教程中,我们使用的是sc.textFile,但在我的情况下,我想使用sqlContext.jsonFile。

您能否提供任何指导以解决此问题?

4

2 回答 2

8

发现解决方案已删除

val sqlCon = new org.apache.spark.sql.SQLContext(sc)

从我的代码中并使用 zeppelin 默认sqlContext 并且它可以工作!!!

于 2015-06-13T17:43:58.437 回答
0

在我的情况下,直到我删除它才解决

import org.apache.spark.sql.SQLContext
于 2016-06-07T10:46:18.560 回答