Ограниченный синтаксис Scala с ядром Apache Toree в Jupyter
OS X El Capitan 10.11.6
Spark 2.2.0 (local)
Scala 2.11.8
Apache Toree Jupyter Kernel 0.2.0
Согласно инструкциям, полученным из этого поста, я успешно включил Spark - Scala
ядро к моему ноутбуку Jupyter с помощью этого установщика Toree. Однако я заметил, что синтаксис Scala очень ограничен. Вот два примера:
1. Не удается вручную создать DataFrame
Следующий код работает в терминальной оболочке Spark:
val test = Seq(
("Brandon", "Erica"),
("Allen", "Sarabeth"),
("Jared", "Kyler")).
toDF("guy", "girl")
Но при попытке запустить в Jupyter с Spark - Scala
ядро, я получаю следующую ошибку:
Name: Compile Error
Message: <console>:21: error: value toDF is not a member of Seq[(String, String)]
possible cause: maybe a semicolon is missing before `value toDF'?
toDF("guy", "girl")
^
2. Не в состоянии вызывать имена столбцов с определенным синтаксисом. Кажется, что Jupyter Spark - Scala
ядро не распознает столбцы при вызове с $"columnName"
, но распознает столбцы с df.col("columnName")
, $"columnName"
синтаксис выбрасывает следующую ошибку:
Name: Compile Error
Message: <console>:31: error: value $ is not a member of StringContext
df.where($"columnName" =!= "NA").
Я думаю, что есть решение высокого уровня, которое позволит использовать весь синтаксис Spark Scala в Jupyter и надеется на поддержку сообщества.
1 ответ
Я нашел ответ на другой пост, который также решил мои проблемы:
val sqlC = new org.apache.spark.sql.SQLContext(sc)
import sqlC.implicits._
Запуск этого в начале записной книжки ослабил все синтаксические ограничения, которые у меня были ранее.