Вдохновленный комментариями Нельсона и Chris ', я нашел способ обхода одной и той же исходной политики с помощью div
и iframe
:
HTML:
CSS:
#div_iframe {
border-style: inset;
border-color: grey;
overflow: scroll;
height: 500px;
width: 90%
}
#frame {
width: 100%;
height: 1000%; /* 10x the div height to embrace the whole page */
}
Теперь предположим, что я хочу пропустить первые 438 (вертикальные) пиксели страницы iframe, прокрутив до это положение.
Решение JS:
document.getElementById('div_iframe').scrollTop = 438
Решение JQuery:
$('#div_iframe').scrollTop(438)
Решение CSS:
#frame { margin-top: -438px }
( Каждого решения достаточно, и эффект CSS один немного отличается, поскольку вы не можете прокручивать вверх, чтобы видеть верхнюю часть страницы iframed.)
Нет никакой разницы в производительности. Оба метода используют точно такой же механизм выполнения и внутренние структуры данных. В конце дня все сводится к личным предпочтениям.
DataFrame
гораздо проще создавать программно и обеспечивать минимальную безопасность. HiveContext
они могут также использоваться для раскрытия некоторых функций, которые могут быть недоступны другими способами (например, UDF без обтекателей Spark). В идеале катализатор Spark должен оптимизировать оба вызова одного и того же плана выполнения, а производительность должна быть одинаковой. Как позвонить - это всего лишь вопрос вашего стиля. На самом деле существует разница, соответствующая отчету Hortonworks ( https://community.hortonworks.com/articles/42027/rdd-vs-dataframe-vs-sparksql.html ), где SQL превосходит Dataframes для случая, когда вам нужны записи GROUPed с их суммарными COUNTS, которые СООТВЕТСТВУЮТ по названию записи.
Используя DataFrame, можно разбить SQL на несколько операторов / запросов, что помогает в отладке, простых улучшениях и обслуживании кода.
Разбиение сложных SQL-запросов на более простые запросы и назначение результата в DF дает лучшее понимание.
Разбирая запрос на несколько DF, разработчик получает преимущество использования кеша, репарации (до распределять данные равномерно по разделам с помощью уникального ключа / уникального ключа).