Почему платформе объекта нужен ICollection для ленивой загрузки?

Любые зависимости могут быть переданы с помощью 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)

26
задан 19 May 2010 в 15:21
поделиться

2 ответа

Я думаю, что нашел решение ... См. Здесь для более подробной информации: 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 и доступ должны быть публичными или защищенными.

21
ответ дан Ekk 28 November 2019 в 07:53
поделиться

Вы не можете вставить в IEnumerable. Это относится к EF так же, как и к вашим клиентам.Однако вам не обязательно использовать ICollection; вы можете использовать IList или другие записываемые типы. Мой совет, чтобы получить лучшее из обоих миров, - предоставлять вашим клиентам DTO, а не сущности.

5
ответ дан 28 November 2019 в 07:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: