Size: a a a

2020 June 01

N

Nikolay in Moscow Spark
Паша Финкельштейн
Попасть, там есть пример на скале от меня
а где там?
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Nikolay
а где там?
источник

N

Nikolay in Moscow Spark
Если вот тут val ds = Seq(1.asInstanceOf[Integer], null.asInstanceOf[Integer]).toDS() , то тут нет энкодера для кейс класса. тут есть энкодер  implicit def newBoxedIntEncoder: Encoder[java.lang.Integer] = Encoders.INT
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Nikolay
Если вот тут val ds = Seq(1.asInstanceOf[Integer], null.asInstanceOf[Integer]).toDS() , то тут нет энкодера для кейс класса. тут есть энкодер  implicit def newBoxedIntEncoder: Encoder[java.lang.Integer] = Encoders.INT
Правильно, но это вполне стандартный путь
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Ты читаешь откуда-то стрим значений и потом, например, группируешь
источник

N

Nikolay in Moscow Spark
они все стандартые. есть просто разные пути  . один для кейс классов, а другой для других типов.
источник

N

Nikolay in Moscow Spark
а для просто классов нет пути "стандартного" . Вот попробуй скомпилить  import spark.implicits._
 class Pair(val a:Int,val b:Int)
 spark.sqlContext.createDataset(Seq(new Pair(1,1))).show()
источник

N

Nikolay in Moscow Spark
Под стандартным я понимаю путь, который появляется после добавления уже готовых имплиситов из SQLImplicits
источник

N

Nikolay in Moscow Spark
Интересно, что spark.sql.codegen.wholeStage  не влияет на генерацию кода для декодеров. Он действует только для WSCG
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Nikolay
они все стандартые. есть просто разные пути  . один для кейс классов, а другой для других типов.
Сорри, я триггернулся на "Стандартными" энкодерами в этот кусок кода не попасть потому что Encoders.INT вполне себе стандартный
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Nikolay
Интересно, что spark.sql.codegen.wholeStage  не влияет на генерацию кода для декодеров. Он действует только для WSCG
тут ты имеешь в виду десериалайзеров?
источник

ПФ

Паша Финкельштейн... in Moscow Spark
А то энкодер — это пара сериалайзер-десериалайзер вроде бы
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Кстати, фикс этой баги сейчас на все спарки раскатают, начиная с 2.0.x вроде бы
источник

N

Nikolay in Moscow Spark
Паша Финкельштейн
тут ты имеешь в виду десериалайзеров?
и сериализацию тоже. он же генерит код для того, чтобы сериализоват значение  типа T. генерит всегда не взирая на значения этог параметра.
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Nikolay
и сериализацию тоже. он же генерит код для того, чтобы сериализоват значение  типа T. генерит всегда не взирая на значения этог параметра.
Как-то влияет и я в печали что нельзя посмотреть сгенерированный код при выключенном wholestage'е
источник

ПФ

Паша Финкельштейн... in Moscow Spark
(или я не нашёл как)
источник

N

Nikolay in Moscow Spark
мы наверное про разные сгерерированные кода похоже говорим. ты наверное хочешь увидеть код сериалиазции и десиреализации в WSCG.  попробуй  включить DEBUG с выключенным WSCG
источник

ПФ

Паша Финкельштейн... in Moscow Spark
О, блин, хорошая идея
источник

ПФ

Паша Финкельштейн... in Moscow Spark
Теперь уже поздно, а если бы сообразил сам пока разбирался — может сам бы и причину баги нашёл
источник

ИК

Иван Калининский... in Moscow Spark
Подскажите, какие настройки конфигурации надо указать в spark 2.2.0, чтобы прочитать вложенные директории в hdfs. Названия директорий не в формате партиций hive, это просто папки hdfs. Таблицы hive над этой структурой нет, метастор не содержит никакой информации.
Пример:
/docs/a-f/
/docs/g-o/
/docs/p-z/
На входе только папка /docs/
источник