Создание Dataframe с использованием spark2-shell и получил эту ошибку - PullRequest
0 голосов
/ 04 ноября 2018

Я новичок в 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 голосов
/ 04 ноября 2018
val bankDF = bankrdd.toDF()
bankDF.registerTempTable("bankfull")

или

val bankDF = bankrdd.toDF().registerTempTable("bankfull")
0 голосов
/ 04 ноября 2018

Вам не хватает ; для разделения 2 операторов.

Программирование на Scala, первое издание

В программе 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 варианта, чтобы заставить его работать:

Option1:

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]
...