Если вы используете те же модели, что и ваши модели ViewModels, ваше приложение должно быть очень маленьким и простым и должно содержать только операции CRUD. Но если вы строите большие или корпоративные приложения с большими командами (с двумя или, вероятно, с большим количеством разработчиков), у вас должны быть такие понятия, как инжекция зависимостей, сервисы, репозитории, фасады, единицы работы, объекты доступа к данным и т. Д.
Чтобы упростить ваши потребности в сопоставлении между моделями и ViewModels, вы можете использовать AutoMapper https://github.com/AutoMapper/AutoMapper
или установить с помощью nuget Install-Package AutoMapper
Я просто столкнулся с той же проблемой, но оказалось, что pip install pyspark
загружает искровую разрядку, которая хорошо работает в локальном режиме. Пип просто не подходит SPARK_HOME
. Но когда я устанавливаю это вручную, pyspark работает как шарм (без загрузки каких-либо дополнительных пакетов).
$ pip3 install --user pyspark
Collecting pyspark
Downloading pyspark-2.3.0.tar.gz (211.9MB)
100% |████████████████████████████████| 211.9MB 9.4kB/s
Collecting py4j==0.10.6 (from pyspark)
Downloading py4j-0.10.6-py2.py3-none-any.whl (189kB)
100% |████████████████████████████████| 194kB 3.9MB/s
Building wheels for collected packages: pyspark
Running setup.py bdist_wheel for pyspark ... done
Stored in directory: /home/mario/.cache/pip/wheels/4f/39/ba/b4cb0280c568ed31b63dcfa0c6275f2ffe225eeff95ba198d6
Successfully built pyspark
Installing collected packages: py4j, pyspark
Successfully installed py4j-0.10.6 pyspark-2.3.0
$ PYSPARK_PYTHON=python3 SPARK_HOME=~/.local/lib/python3.5/site-packages/pyspark pyspark
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
2018-03-31 14:02:39 WARN NativeCodeLoader:62 - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/__ / .__/\_,_/_/ /_/\_\ version 2.3.0
/_/
Using Python version 3.5.2 (default, Nov 23 2017 16:37:01)
>>>
Надеюсь, что помогает: -)
Pyspark из PyPi (т. е. установленный с pip
) не содержит полной функциональности Pyspark; он предназначен только для использования с установкой Spark в уже существующем кластере [EDIT: или только в локальном режиме - см. принятый ответ]. Из docs :
Пакет Python для Spark не предназначен для замены всех других вариантов использования. Эта пакетная версия Spark для Python подходит для взаимодействия с существующим кластером (будь то Spark standalone, YARN или Mesos), но не содержит инструментов, необходимых для настройки собственного автономного Spark-кластера. Вы можете загрузить полную версию Spark с страницы загрузки Apache Spark.
ПРИМЕЧАНИЕ. Если вы используете это с автономным кластером Spark, вы должны убедиться, что версия (включая второстепенную версию) соответствует или может возникнуть Нечетные ошибки
blockquote>Вы должны загрузить полное распре деление Spark, как описано здесь здесь .
SPARK_HOME
- см. мой ответ на «обновление» здесь stackoverflow.com/questions/33887227/… , но сеть буквально заполнена такими шагами, пошаговые руководства ...
– desertnaut
18 September 2017 в 19:40
Failed to find Spark jars directory (/Library/Frameworks/Python.framework/Versions/3.6/assembly/target/scala-2.12/jars). You need to build Spark with the target "package" before running this program.
– Louis Yang 5 July 2018 в 05:48SPARK_HOME
вы установили? – Mariusz 10 July 2018 в 18:59