Ограниченный синтаксис 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._ 

Запуск этого в начале записной книжки ослабил все синтаксические ограничения, которые у меня были ранее.

Другие вопросы по тегам