Чтение csv-файлов в zeppelin с помощью spark-csv
Я хочу прочитать csv-файлы в Zeppelin и хотел бы использовать databricks' пакет spark-csv:https://github.com/databricks/spark-csv
в spark-shell я могу использовать spark-csv с
spark-shell --packages com.databricks:spark-csv_2.11:1.2.0
но как мне сказать Zeppelin использовать этот пакет?
спасибо заранее!
6 ответов
вам нужно добавить репозиторий пакетов Spark в Zeppelin, прежде чем вы сможете использовать %dep для пакетов spark.
%dep
z.reset()
z.addRepo("Spark Packages Repo").url("http://dl.bintray.com/spark-packages/maven")
z.load("com.databricks:spark-csv_2.10:1.2.0")
кроме того, если вы хотите, чтобы это было доступно во всех ваших ноутбуках, вы можете добавить параметр --packages в Параметр команды spark-submit в конфигурации interpreters в Zeppelin, а затем перезапустить интерпретатор. Это должно начать контекст с пакета, уже загруженного в соответствии с методом spark-shell.
- перейдите на вкладку интерпретатор, щелкните информация о репозитории, добавьте РЕПО и установите URL вhttp://dl.bintray.com/spark-packages/maven
- прокрутите вниз до пункта интерпретатора spark и нажмите "правка", прокрутите немного вниз до поля артефакта и добавьте " com.databricks: spark-csv_2.10: 1.2.0" или более новая версия. Затем перезапустите интерпретатор по запросу.
-
в блокноте используйте что-то например:
import org.apache.spark.sql.SQLContext val sqlContext = new SQLContext(sc) val df = sqlContext.read .format("com.databricks.spark.csv") .option("header", "true") // Use first line of all files as header .option("inferSchema", "true") // Automatically infer data types .load("my_data.txt")
обновление:
в списке рассылки пользователей Zeppelin теперь (Ноя. 2016) заявил Moon Soo Lee (создатель Apache Zeppelin), что пользователи предпочитают держать %dep, как это позволяет:
- самостоятельное документирование библиотечных требований в блокноте;
- на заметку (и возможно на пользователя) загрузка библиотеки.
тенденция теперь держать %dep, поэтому она не должна быть рассмотрена амортизированной на этом время.
BEGIN-EDIT
%dep устарело в Цеппелине 0.6.0. Пожалуйста, обратитесь к ответу Paul-Armand Verhaegen.
пожалуйста, прочитайте дальше в этом ответе, если вы используете zeppelin старше 0.6.0
END-EDIT
вы можете загрузить пакет spark-csv с помощью интерпретатора %dep.
например,
%dep
z.reset()
// Add spark-csv package
z.load("com.databricks:spark-csv_2.10:1.2.0")
см. раздел Загрузки зависимостей в https://zeppelin.incubator.apache.org/docs/interpreter/spark.html
Если вы уже инициализировали контекст Spark, быстрое решение-перезапустить zeppelin и выполнить пункт zeppelin с указанным выше кодом, а затем выполнить код spark для чтения файла CSV
вы можете добавить файлы jar в зависимости интерпретатора Spark:
- Нажмите Меню "интерпретатор" в навигационной панели.
- Нажмите кнопку "Изменить" для интерпретатора Spark.
- заполнить артефакт и исключить поля.
- Нажмите 'Сохранить'
Если вы определяете в conf/zeppelin-env.sh
export SPARK_HOME=<PATH_TO_SPARK_DIST>
Zeppelin будет выглядеть в $SPARK_HOME/conf / spark-по умолчанию.conf и вы можете определить банки там:
spark.jars.packages com.databricks:spark-csv_2.10:1.4.0,org.postgresql:postgresql:9.3-1102-jdbc41
затем посмотреть
http://zepplin_url: 4040 / окружающая среда / для следующего:
Искра.опарникы файл:/root/.ivy2 / jars / com.databricks_spark-csv_2.10-1.4.0.jar, файл:/root/.ivy2 / jars / org.postgresql_postgresql-9.3-1102-jdbc41.Джар
Искра.банки.пакеты com.databricks: spark-csv_2.10: 1.4.0, org.postgresql: postgresql: 9.3-1102-jdbc41
для больше ссылки: https://zeppelin.incubator.apache.org/docs/0.5.6-incubating/interpreter/spark.html
другое решение:
In conf/zeppelin-env.sh (находится в /etc/zeppelin для меня) добавить строку:
export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0"
затем запустите службу.