Если вы хотите заменить одну точку с запятой:
for i in range(0,len(line)):
if (line[i]==";"):
line = line[:i] + ":" + line[i+1:]
, Havent проверил ее, хотя.
С одной стороны, модель машинного обучения, построенная с использованием искры, не может быть использована так, как вы используете в Azure ML или Amazon ML традиционным способом.
Databricks утверждает, что может развернуть модели с помощью своего ноутбука, но я пока этого не пытался.
С другой стороны, вы можете использовать модель тремя способами:
MLWriter
, затем загружает приложение или ноутбук и запускает его против ваших данных. Это три возможных способа.
Конечно, вы можете подумать о архитектуре, в которой у вас есть служба RESTful, за которой вы можете создавать с помощью spark-jobserver на пример для обучения и развертывания, но для этого требуется определенная разработка. Это не готовое решение.
Вы также можете использовать такие проекты, как Oryx 2, чтобы создать свою полную лямбда-архитектуру для обучения, развертывания и обслуживания модели.
К сожалению, описание каждого из вышеупомянутых решений довольно широкое и не входит в сферу действия SO.
Один из вариантов - использовать MLeap для работы в Spark PipelineModel онлайн с без зависимостей от Spark / SparkContext . Не нужно использовать SparkContext, так как он потеряет время подсчета для одной записи от ~ 100 мс до однозначных микросекунд.
Чтобы использовать ее, вы должны:
MLeap хорошо интегрирован со всеми этапами Pipeline Stages, доступными в Spark MLlib (за исключением LDA на момент написания этой статьи ). Однако, если вы пользуетесь пользовательскими оценщиками / трансформерами, это может немного усложниться.
Взгляните на FAQ для MLeap для получения дополнительной информации о пользовательских трансформаторах / оценках, и интеграция.
Вы сравниваете две довольно разные вещи. Apache Spark - это вычислительный механизм, в то время как упомянутые вами решения Amazon и Microsoft предлагают услуги. Эти сервисы могут также иметь Spark с MLlib за сценой.
Количество компаний, таких как Domino Data Lab, Cloudera или IBM, предлагает продукты, которые можно развернуть на своем собственном кластере Spark и легко создавать сервис вокруг ваших моделей (с разной степенью гибкости).
Естественно, вы создаете сервис самостоятельно с помощью различных инструментов с открытым исходным кодом. Что конкретно? Все зависит от того, что вам нужно. Как пользователь должен взаимодействовать с моделью? Должен ли быть какой-то пользовательский интерфейс или шутить REST API? Вам нужно изменить некоторые параметры на модели или самой модели? Являются ли рабочие места более частыми или реальными? Естественно, вы можете создать решение «все-в-одном», но это будет огромным усилием.
. Моя личная рекомендация заключалась бы в том, чтобы воспользоваться, если можно, одним из доступных сервисов Amazon, Google , Microsoft или что угодно. Нужно ли размещать на месте? Проверьте Domino Data Lab, их продукт зрелый и позволяет легко работать с моделями (от здания до развертывания). Cloudera больше ориентирован на кластерные вычисления (включая Spark), но это займет некоторое время, прежде чем у них что-то созреет.
[EDIT] Я бы рекомендовал посмотреть Apache PredictionIO , сервер обучения с открытым исходным кодом - потрясающий проект с потенциалом лота.