apache-spark - Zeppelin 和 SqlContext

标签 apache-spark apache-spark-sql apache-zeppelin

我有一个真正简单的 Zeppelin 笔记本,包含三个段落 - 基于 Zeppelin-Demo 笔记本,但唯一的区别是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

第 1 段和第 2 段运行良好 - 但第三段出现错误:

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)…

Zeppelin 演示运行得很好。我在我的沙箱上运行它,它使用为 Hadoop 2.6 构建的 Spark 1.5.2 (spark-1.5.2-bin-hadoop2.6.tgz) 和 Zeppelin 0.5.5 – 又是一个二进制 zeppelin-0.5.5-incubating-bin -all.tgz。

我怀疑这与 SqlContext 有关 - 因为我相信 Zeppelin 注入(inject)了它自己的 SqlContext。

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

最佳答案

我已经找到解决问题的方法了。 Zeppelin 中有一个错误,我需要重现该错误并将其发送给团队。似乎如果您是 Zeppelin 的菜鸟(像我一样!)并创建自己的 sqlContext,您实际上会破坏笔记本 - 直到您重新启动内核,所有表都会在错误的上下文中注册,并且后续段落的范围内没有该表。重新启动内核解决了问题。

关于apache-spark - Zeppelin 和 SqlContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34536111/

相关文章:

csv - Spark : spark-csv takes too long

python - PySpark:如何按固定日期范围和使用窗口函数计算值列总和的另一列进行分组?

apache-spark - 使用docker登录到Zeppelin问题

pyspark - 如何在pyspark中自动删除常量列?

python - 调用返回 FloatType() 的 UDF 时为 "expected zero arguments for construction of ClassDict (for numpy.dtype)"

amazon-web-services - 如何在现有的Apache Spark独立群集上安装Apache Zeppelin

javascript - 将 d3.js 与 Apache Zeppelin 结合使用

python - 在 Apache Spark 中读取 pretty-print json 文件

scala - reduceByKey 处理每个 flatMap 输出而不聚合 GraphX 中键的值

apache-spark - 如何在 Spark 2.0 程序(实际上是 pyspark 2.0)中编写正确的入口点?