Как Паркет обрабатывает столбцы SparseVector?

Если вы используете PHP 5.3 >, это, безусловно, самый точный способ вычисления разницы:

$earlier = new DateTime("2010-07-06");
$later = new DateTime("2010-07-09");

$diff = $later->diff($earlier)->format("%a");
0
задан lU5er 17 January 2019 в 03:10
поделиться

1 ответ

Паркет не предоставляет встроенную поддержку векторов Spark ML / MLlib и не является первоклассными гражданами в Spark SQL.

Вместо этого Spark представляет Vectors, используя поля struct с тремя полями:

  • type - ByteType
  • size - IntegerType (необязательно) только для SparseVectors)
  • indices - ArrayType(IntegerType) (необязательно, только для SparseVectors)
  • values - ArrayType(DoubleType)
[1119 ] и использует метаданные, чтобы отличать их от простых structs и оболочек UDT для отображения на внешние типы. Преобразование между разреженным и плотным представлением не требуется. Тем не менее, в зависимости от данных, для такого представления может потребоваться сопоставимая память с полным плотным массивом.

Обратите внимание, что OOM при записи не обязательно относится к самому процессу записи. Поскольку Spark, как правило, ленив, исключение может быть вызвано любой из вышестоящих стадий.

0
ответ дан 3 revs 17 January 2019 в 03:10
поделиться
Другие вопросы по тегам:

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