Вот пример использования API cookie DOM ( https://developer.mozilla.org/en-US/docs/Web/API/Document/cookie ), поэтому мы можем видеть
Если мы выполним следующий JavaScript:
document.cookie = "key = value"
blockquote>Появляется чтобы быть таким же, как выполнение:
document.cookie = "key = value; domain = mydomain.com"
blockquote>Кнопка cookie становится доступным (только) в домене mydomain.com .
Теперь, если вы выполните следующий JavaScript на mydomain.com:
document.cookie = "key = value; domain = .mydomain.com"
blockquote>Кнопка cookie становится доступной для mydomain. com , а также subdomain.mydomain.com .
Наконец, если вы попытаетесь выполнить следующее на subdomain.mydomain.com:
document.cookie = "key = value; domain = .mydomain.com"
blockquote>Доступна ли кнопка cookie для subdomain.mydomain.com ? Я был немного удивлен, что это разрешено; Я предположил, что было бы нарушением безопасности для субдомена, чтобы он мог установить cookie в родительском домене.
На первый взгляд все Transformers
и Estimators
реализуют MLWritable
. Если вы используете Spark & lt; = 1.6.0 и испытываете некоторые проблемы с сохранением модели, я бы предложил версию переключения.
Так как Spark 1.6 можно сохранить ваши модели с помощью метода save
. Потому что почти каждый model
реализует интерфейс MLWritable . Например, у него есть LinearRegressionModel , и поэтому вы можете сохранить свою модель на нужный путь, используя ее.
Я считаю, что вы делаете неверные предположения здесь.
Некоторые операции над DataFrames
можно оптимизировать, и это переводит на улучшенную производительность по сравнению с обычным RDDs
. DataFrames
обеспечивают эффективное кэширование и SQLish API, возможно, легче понять, чем RDD API.
ML Трубопроводы чрезвычайно полезны, и инструменты, такие как кросс-валидатор или разные оценщики, просто должны быть в любом конвейере машины, и даже если ни одно из вышеперечисленных не особенно сложно реализовать поверх низкоуровневого MLlib API, гораздо лучше иметь готовое к использованию универсальное и относительно хорошо проверенное решение.
Пока все хорошо, но есть несколько проблем:
DataFrames
, как select
или withColumn
, показывают аналогичную производительность с его эквивалентами RDD, такими как map
, ml.classification.NaiveBayes
, являются просто обертками вокруг его API mllib
Я считаю, что в конце дня то, что вы получаете с помощью ML over MLLib, довольно элегантно, API высокого уровня. Единственное, что вы можете сделать, это объединить оба для создания настраиваемого многоэтапного конвейера:
MLLib
, MLLib
модель, используя метод ваш выбор (модель искры или PMML ) Это не оптимальное решение, но лучшее, что я могу представить с учетом текущего API.
Кажется, что функциональность API для сохранения модели на сегодняшний день не реализована (см. Трекер ошибок Spark SPARK-6725 ).
Была опубликована альтернатива ( Как сохранить модели от ML Pipeline до S3 или HDFS? ), который предполагает просто сериализацию модели, но является Java-подходом. Я ожидаю, что в PySpark вы можете сделать что-то подобное, т. Е. Рассортировать модель для записи на диск.