.toLocalIterator().map(...).forEach(...add to Seq)
Это обработает разделы 'по одному' на драйвере (по сравнению с размещением всего RDD в память драйвера). Память, требуемая на драйвере, равна размеру самого большого раздела.
Тест, если Seq впишется в память драйвера:
.map(x => x.name).collect().toSeq()
Этот метод уменьшит размер RDD (и его разделы) прежде, чем отправить данные на драйвер. Если это заставляет драйвер исчерпывать память тогда, единственная опция состоит в том, чтобы увеличить память драйвера.
Примечания здесь:
https://spark.apache.org/docs/2.2.0/api/java/org/apache/spark/rdd/RDD.html#collect https://spark.apache.org/docs/2.2.0/api/java/org/apache/spark/rdd/RDD.html#toLocalIterator
Да. По умолчанию ASP.NET MVC сначала проверяет в \ Views \ [Controller_Dir] \
, но после этого, если не находит представление, проверяет в \ Views \ Shared
.
Общий каталог предназначен специально для обмена представлениями между несколькими контроллерами. Просто добавьте свое представление в подкаталог Shared, и все готово.
Если вы сделаете return View ("~ / Views / Wherever / SomeDir / MyView.aspx")
, вы можете вернуть любое представление хотите.
Вы также можете вызвать любой контроллер из JavaScript / jQuery . Скажем, у вас есть контроллер, возвращающий 404 или какой-либо другой пользовательский элемент управления / страницу. Затем, выполнив какое-либо действие из клиентского кода, вы можете вызвать адрес, который запустит ваш контроллер и вернет результат в формате HTML . ваш клиентский код может взять этот возвращенный результат и поместить его в любое место вашей страницы ...