Чтение csv файлов в zeppelin с использованием spark-csv
Я хочу читать csv файлы в Zeppelin и хотел бы использовать databricks '
spark-csv package: https://github.com/databricks/spark-csv
В искровой оболочке я могу использовать spark-csv с
spark-shell --packages com.databricks:spark-csv_2.11:1.2.0
Но как я могу указать Zeppelin на использование этого пакета?
Спасибо заранее!
Ответы
Ответ 1
Вам нужно добавить репозиторий Spark Packages в Zeppelin, прежде чем вы сможете использовать% dep на пакетах искры.
%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")
В качестве альтернативы, если это то, что вы хотите использовать во всех ноутбуках, вы можете добавить опцию --пакеты в параметр команды исправить-отправить в конфигурации интерпретаторов в Zeppelin, а затем перезапустить интерпретатор. Это должно начать контекст с уже загруженным пакетом по методу искровой оболочки.
Ответ 2
- Перейдите на вкладку "Интерпретатор", нажмите "Информация репозитория", добавьте репо и установите URL-адрес в http://dl.bintray.com/spark-packages/maven
- Прокрутите список до абзаца искрового интерпретатора и нажмите "Редактировать", немного прокрутите поле "Артефакт" и добавьте "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")
Update:
В списке рассылки пользователей Zeppelin теперь (ноябрь 2016) заявила Moon Soo Lee (создатель Apache Zeppelin), которую пользователи предпочитают сохранять% dep, поскольку она позволяет:
- требования к самостоятельной документации библиотеки в ноутбуке;
- за загрузку библиотеки (и возможный для каждого пользователя).
Тенденция теперь состоит в том, чтобы удерживать% dep, поэтому она не должна считаться обесцененной в это время.
Ответ 3
НАЧАТЬ-РЕДАКТИРОВАТЬ
% dep не рекомендуется в Zeppelin 0.6.0. Пожалуйста, см. Пол-Арманд Верхаген.
Прочтите далее в этом ответе, если вы используете zeppelin старше 0.6.0
END-РЕДАКТИРОВАТЬ
Вы можете загрузить пакет spark-csv с помощью% dep interpreter.
как
%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 Context, быстрое решение состоит в том, чтобы перезапустить zeppelin и выполнить параграф zeppelin с вышеуказанным кодом, а затем выполнить ваш искровой код, чтобы прочитать файл CSV
Ответ 4
если вы определяете в conf/zeppelin-env.sh
export SPARK_HOME=<PATH_TO_SPARK_DIST>
Затем Zeppelin заглянет в $SPARK_HOME/conf/spark-defaults.conf, и вы можете определить там банки:
spark.jars.packages com.databricks:spark-csv_2.10:1.4.0,org.postgresql:postgresql:9.3-1102-jdbc41
затем посмотрите
http:// zepplin_url: 4040/environment/для следующего:
spark.jars файл:/root/.ivy2/jars/com.databricks_spark-csv_2.10-1.4.0.jar.file:/root/.ivy2/jars/org.postgresql_postgresql -9.3-1102-jdbc41.jar
spark.jars.packages 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
Ответ 5
Другое решение:
В conf/zeppelin-env.sh(находится в /etc/zeppelin для меня) добавьте строку:
export SPARK_SUBMIT_OPTIONS="--packages com.databricks:spark-csv_2.10:1.2.0"
Затем запустите службу.