2014-12-21 5 views
3

Я новичок в Spark. В своих документах говорится: Доступно либо в Scala, либо в Python.Scala - обязательное условие для Spark?

И некоторые блоги говорят Искра зависит от скаляра (например, http://cn.soulmachine.me/blog/20130614/). Поэтому мне интересно: Is scala a must for Spark? (Должен ли я установить scala в первую очередь из-за зависимости?)

+1

Возможный дубликат [Как может искр работать без установки Scala заранее?] (Http://stackoverflow.com/questions/27590474/how-can-spark-shell-work-without-installing-scala- заранее) –

ответ

0

Java является обязательным условием для Spark + многих других транзитивных зависимостей (компилятор scala - это просто библиотека для JVM). PySpark просто подключается удаленно (через сокет) к JVM с помощью Py4J (взаимодействие Python-Java). Py4J включен в PySpark.

PySpark требует Python 2.6 или выше. Приложения PySpark: , выполненные с использованием стандартного интерпретатора CPython для поддержки модулей Python, которые используют расширения C. Мы не тестировали PySpark с Python 3 или с альтернативными интерпретаторами Python, такими как PyPy или Jython.

Все библиотеки PySpark, включая Py4J, в комплекте с PySpark и автоматически импортируются.

Standalone PySpark приложение должно быть выполнено с помощью бен/pyspark скрипта, который автоматически настраивает среду Java и Python , используя настройки в конфе/spark-env.sh или .CMD. Сценарий автоматически добавляет пакет bin/pyspark в PYTHONPATH.

https://spark.apache.org/docs/0.9.1/python-programming-guide.html - эта команда показывает, как построить и запустить все это Scala/Java Build Tool (SBT), который загрузит всю зависимость (в то числе Скала) автоматически из удаленного хранилища. Йо также может использовать Maven.

Если вы не хотите, чтобы Java на вашем компьютере - вы можете запустить его на любом другом компьютере и настроить PySpark для его использования (на SparkConf().setMaster).

Итак, вам нужен Java для главного узла с самой Спарк (и все Java-зависимости, как Scala) и Python 2.6 для py-client

0

API-интерфейс в Scala имеет следующие языковые привязки:

  • Scala
  • Java
  • Python

Scala как естественный е он, поскольку он поддерживает строго функциональное программирование, что является очевидным преимуществом в области больших данных. Большинство учебников и фрагментов кода, которые вы найдете в сети, написаны в Scala.

Относительно runtimne depenendencies пожалуйста, посмотрите на the project download page

«Искра работает на Java 6+ и Python 2.6+. Для API Scala, Спарк 1.2.0 использует Scala 2,10. Вам нужно будет использовать совместимая версия Scala (2.10.x)."