Любые зависимости могут быть переданы с помощью spark.jars.packages
(установка spark.jars
должна также работать) в $SPARK_HOME/conf/spark-defaults.conf
. Это должен быть список координат, разделенный запятыми.
И перед установкой JVM необходимо установить пакеты или свойства pathpath, а - во время инициализации SparkConf
. Это означает, что здесь нельзя использовать метод SparkConf.set
.
Альтернативный подход заключается в установке переменной среды PYSPARK_SUBMIT_ARGS
до инициализации объекта SparkConf
:
import os
from pyspark import SparkConf
SUBMIT_ARGS = "--packages com.databricks:spark-csv_2.11:1.2.0 pyspark-shell"
os.environ["PYSPARK_SUBMIT_ARGS"] = SUBMIT_ARGS
conf = SparkConf()
sc = SparkContext(conf=conf)
Я думаю, что нашел решение ... См. Здесь для более подробной информации: http://social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/47296641-0426-49c2-b048 -bf890c6d6af2 /
По сути, вы хотите сделать тип ICollection защищенным и использовать его в качестве резервного набора для общедоступного IEnumerable
public class Product
{
// This is a mapped property
protected virtual ICollection<Photo> _photos { get; set; }
// This is an un-mapped property that just wraps _photos
public IEnumerable<Photo> Photos
{
get { return _photos; }
}
public void AddPhoto(){...}
public void RemovePhoto(){...}
}
Чтобы ленивая загрузка работала, тип должен реализовать ICollection и доступ должны быть публичными или защищенными.
Вы не можете вставить в IEnumerable. Это относится к EF так же, как и к вашим клиентам.Однако вам не обязательно использовать ICollection; вы можете использовать IList или другие записываемые типы. Мой совет, чтобы получить лучшее из обоих миров, - предоставлять вашим клиентам DTO, а не сущности.