Почему возникает ошибка запуска искровой оболочки, когда я пытаюсь создать переменную с именем org?

Я попытался создать переменную / val с именем "org" в оболочке Spark (Scala версии 2.10.5), но выдала ошибку

Я пробовал как с var, так и с val.

 var org = List(1)

ошибка: значение apache не является членом List [Int] org.apache.spark.sql.catalyst.encoders.OuterScopes.addOuterScope (это)


person Santhosh Kumar    schedule 19.07.2019    source источник
comment
Это весь твой сценарий? Похоже, что где-то ниже вы пытаетесь import org.apache..... и ваша локальная переменная org сломала это.   -  person Thilo    schedule 19.07.2019
comment
@Thilo, я только что запустил спарк-оболочку, а затем выполнил var org = List (1).   -  person Santhosh Kumar    schedule 19.07.2019
comment
Ну наверное ошибка в спарк-шелле. Похоже, он хочет вызвать org.apache.spark.sql.catalyst.encoders.OuterScopes.addOuterScope внутри. Просто назовите переменную как-нибудь иначе.   -  person Thilo    schedule 19.07.2019


Ответы (1)


Что ж, я могу создать список, фреймы данных с именем 'org'

scala> val org = List(1)
org: List[Int] = List(1)

scala> var org = List(1)
org: List[Int] = List(1)

scala>

scala>

scala> val org = Seq((1,2,3), (2,3,4)).toDF()
org: org.apache.spark.sql.DataFrame = [_1: int, _2: int ... 1 more field]

scala> org
res0: org.apache.spark.sql.DataFrame = [_1: int, _2: int ... 1 more field]

scala> org.show
+---+---+---+
| _1| _2| _3|
+---+---+---+
|  1|  2|  3|
|  2|  3|  4|
+---+---+---+

Я использую Spark версии 2.2.0 и scala 2.11.8. Думаю, эту проблему можно исправить в последних версиях. Но я знаю, что вы не можете создавать значения или переменные, используя некоторые зарезервированные ключевые слова. Например

scala> val new = Seq((1,2)(2,3)).toDF()
<console>:1: error: illegal start of simple pattern
val new = Seq((1,2)(2,3)).toDF()

"org" могло быть ключевым словом в предыдущей версии. Надеюсь, это поможет ...!!

person Sarath Chandra Vema    schedule 08.10.2019