Apache spark 齐柏林飞艇和SqlContext

Apache spark 齐柏林飞艇和SqlContext,apache-spark,apache-spark-sql,apache-zeppelin,Apache Spark,Apache Spark Sql,Apache Zeppelin,我有一个真正简单的齐柏林飞艇笔记本,上面有三个段落——基于齐柏林飞艇演示笔记本,但唯一的区别是bankText RDD是使用textFile方法创建的 第1款: %sh wget http://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank.zip unzip bank.zip 第2段: val bankText = sc.textFile("bank.zip") case class BankRow(age: Int

我有一个真正简单的齐柏林飞艇笔记本,上面有三个段落——基于齐柏林飞艇演示笔记本,但唯一的区别是bankText RDD是使用textFile方法创建的

第1款:

%sh
wget http://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank.zip
unzip bank.zip
第2段:

val bankText = sc.textFile("bank.zip")

case class BankRow(age: Integer, job: String, marital: String, education: String, balance: Integer)

val bank2 = bankText.map(s => s.split(";")).filter(s => s(0) != "\"age\"").map(
    s => BankRow(s(0).toInt, 
            s(1).replaceAll("\"", ""),
            s(2).replaceAll("\"", ""),
            s(3).replaceAll("\"", ""),
            s(5).replaceAll("\"", "").toInt
        )
).toDF()
bank2.registerTempTable("bank2”)
第3段:

%sql 
select age, count(1) value
from bank2 
where age < 30
group by age 
order by age
齐柏林飞艇的演示效果很好。我在我的沙箱上运行这个程序,它使用为hadoop2.6(spark-1.5.2-bin-hadoop2.6.tgz)和齐柏林飞艇0.5.5构建的spark 1.5.2——同样是一个二进制齐柏林飞艇-0.5.5-孵化-bin-all.tgz

我怀疑这与SqlContext有关——因为我相信齐柏林飞艇注入了它自己的SqlContext


有什么建议吗?感觉我错过了一些非常简单的东西。

我已经找到了问题的解决方案。齐柏林飞艇中有一个bug,我需要复制并发送给团队。看起来,如果你是齐柏林飞艇(和我一样!)的noob,并且创建自己的sqlContext,那么你实际上破坏了笔记本——直到你重新启动内核,所有的表都在错误的上下文中注册,并且后面的段落中没有该表。重新启动内核修复了这个问题。

也许我遗漏了一些东西,但是您的代码示例不包括创建SQLContext,根据您的回答,我想您已经删除了它。对于其他将阅读此问题的人,我建议您将其添加回去,这样答案才有意义。嗨,Eran,这确实让我感到困惑,因为这是齐柏林飞艇笔记本中的内容,它已经在笔记本中注入了sqlContext。最初,我创建了一个sqlContext,但这会导致问题,因为该表是在sqlContext中注册的,在使用%sql时,后面的段落无法看到该表。我可以使用sqlContext和queey来处理它,但我无法在齐柏林飞艇中操作返回的数据帧。
org.apache.spark.sql.AnalysisException: no such table bank2; line 2 pos 5 at
org.apache.spark.sql.catalyst.analysis.package$AnalysisErrorAt.failAnalysis(package.scala:42) at
org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveRelations$.getTable(Analyzer.scala:260) at org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveRelations$$anonfun$apply$7.applyOrElse(Analyzer.scala:268) at org.apache.spark.sql.catalyst.analysis.Analyzer$ResolveRelations$$anonfun$apply$7.applyOrElse(Analyzer.scala:264) at 
org.apache.spark.sql.catalyst.plans.logical.LogicalPlan$$anonfun$resolveOperators$1.apply(LogicalPlan.scala:57) at 
org.apache.spark.sql.catalyst.plans.logical.LogicalPlan$$anonfun$resolveOperators$1.apply(LogicalPlan.scala:57)…