使用spark2-shell创建数据框并出现此错误

时间:2018-11-04 17:22:34

标签: scala spark-shell

我是Spark-shell的新手,从 csv 文件创建数据框时遇到此错误:

 scala> val bankDF = bankrdd.toDF() bankDF.registerTempTable("bankfull")                                                                                                               
<console>:1: error: ';' expected but '.' found.                                                                                                                                       
val bankDF = bankrdd.toDF() bankDF.registerTempTable("bankfull")


                              ^                        

2 个答案:

答案 0 :(得分:1)

  

您缺少;来分隔这两个语句。

Programming in Scala, First Edition

  

在Scala程序中,语句末尾的分号通常是可选的。您可以输入一个,但不必输入   如果语句本身显示在一行上。

     

另一方面,如果您在一行上写多个语句,则需要使用分号:

  val s = "hello"; println(s)

示例工作示例Error(与您的代码完全相同):

scala> val rnd = Math.random() val n = Math.abs(rnd)
<console>:1: error: ';' expected but 'val' found.
val rnd = Math.random() val n = Math.abs(rnd)
                        ^

示例工作示例Fixed

scala> val rnd = Math.random(); val n = Math.abs(rnd)
rnd: Double = 0.5940919229549699
n: Double = 0.5940919229549699
  

因此,根据您的情况,您有2种选择可以使其正常工作:

     

选项1:

val bankDF = bankrdd.toDF(); bankDF.registerTempTable("bankfull")
     

选项2:

val bankDF = bankrdd.toDF()
bankDF.registerTempTable("bankfull")
with the following output:

scala> val bankDF = bankrdd.toDF(); bankDF.registerTempTable("bankfull")
warning: there was one deprecation warning; re-run with -deprecation for details
bankDF: org.apache.spark.sql.DataFrame = [value: string]

答案 1 :(得分:0)

app

# app/__init__.py

default_app_config = 'app.apps.MyAppConfig'