Spark row encoder для Seq [CaseClass] [дубликат]

Программа grep-a-like ack имеет параметр -1, который останавливается в первом совпадении, найденном где угодно. Он поддерживает -m 1, на который ссылается @mvp. Я помещал его туда, потому что, если я ищу большое дерево исходного кода, чтобы найти то, что я знаю, существует только в одном файле, нет необходимости его находить и ему нужно нажать Ctrl-C.

4
задан cerisier 1 September 2016 в 20:18
поделиться

1 ответ

Я не уверен, что это ошибка или нет, но микширование динамически типизировано Row, классы case и явная схема не имеют большого смысла. Либо используйте Rows и схему:

import collection.mutable._
import collection.JavaConverters._

spark.createDataFrame(ArrayBuffer(Row(Row(0L, 0))).asJava, SCHEMA)

, либо классы case:

import spark.implicits._

Seq(Tuple1(Timestamp(0L, 0))).toDF("created_at")

В противном случае вы выполняете одно и то же задание дважды.

Примечание:

Если вы хотите выразить, что поля могут быть нулевыми, вы используете Options. Например,

case class Record(created_at: Option[Timestamp])
case class Timestamp(seconds: Long, nanos: Option[Int])

Seq(Record(Some(Timestamp(0L, Some(0))))).toDF

будет генерировать схему, где created_at и created_at.milliseconds могут быть NULL, но created_at.seconds необходимо установить, если created_at не NULL.

5
ответ дан zero323 18 August 2018 в 15:20
поделиться
  • 1
    Я должен использовать явную схему, поскольку я работаю с ранее существовавшей паркетной схемой, у которой есть определенный набор полей с нулевым значением, а другие - без значения NULL, которые я не могу контролировать явно, используя классы классов (насколько мне известно). Я не знал о Row of Row tho, попробую это. благодаря – cerisier 1 September 2016 в 21:20
  • 2
    Фактически вы можете выразить неопределенность с классами case. – zero323 1 September 2016 в 22:02
  • 3
    Спасибо за редактирование. Я пошел с Row of Row без классов классов, даже если я понимаю, что это не самое идеальное решение, но поскольку базовая схема паркета имеет странную композицию с нулевыми значениями и не может быть нулевой, мне становится легче рассуждать об использовании явной схемы. Еще раз спасибо. – cerisier 1 September 2016 в 23:41
Другие вопросы по тегам:

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