Size: a a a

2019 November 27

AE

Alexey Evdokimov in Data Engineers
это что за костыли такие и зачем они вообще
источник

AZ

Anton Zadorozhniy in Data Engineers
Uncel Duk
если будет быстрее цефа это вин
Пробовали bluestore?
источник

AE

Alexey Evdokimov in Data Engineers
"You've written an awesome program in Spark"
лол. спарк это язык программирования что ли?
источник

R

Renarde in Data Engineers
Aleksandr
Всем привет. Подскажите, чем пользуетесь для тестирования спарк приложений на скале. Есть ли какие-то альтернативы этому?
https://github.com/holdenk/spark-testing-base
а зачем для этого стронняя либа?
Мы обычно стартуем локальный спарк:

import org.apache.spark.sql.SparkSession
import org.scalatest.{BeforeAndAfterAll, Suite}

trait SparkSupport extends BeforeAndAfterAll {
   self: Suite =>

   var spark: SparkSession = _

   override def beforeAll(): Unit = {
       spark = SparkSession.builder()
           .appName(“test”)
           .master("local[*]")
           .config("spark.sql.shuffle.partitions", "1")
           .getOrCreate()

       super.beforeAll()
   }

   override def afterAll(): Unit = {
       spark.stop()
       super.afterAll()
   }
}
источник

A

Aleksandr in Data Engineers
Ну, там всякие полезные фичи есть по типу сравнить датафреймы, например.
источник

DM

Daniel Matveev in Data Engineers
Alexey Evdokimov
"You've written an awesome program in Spark"
лол. спарк это язык программирования что ли?
чем нет
DSL дает
источник

R

Renarde in Data Engineers
и потом в тестах:
class SparkTests extends FunSuite with SparkSupport {
test(“spark version”) {
 println(spark.version)
}
}
источник

DM

Daniel Matveev in Data Engineers
Renarde
а зачем для этого стронняя либа?
Мы обычно стартуем локальный спарк:

import org.apache.spark.sql.SparkSession
import org.scalatest.{BeforeAndAfterAll, Suite}

trait SparkSupport extends BeforeAndAfterAll {
   self: Suite =>

   var spark: SparkSession = _

   override def beforeAll(): Unit = {
       spark = SparkSession.builder()
           .appName(“test”)
           .master("local[*]")
           .config("spark.sql.shuffle.partitions", "1")
           .getOrCreate()

       super.beforeAll()
   }

   override def afterAll(): Unit = {
       spark.stop()
       super.afterAll()
   }
}
скорее всего там похожее, просто бойлерплейт убран в либу (не пользовался, код не смотрел)
источник

AE

Alexey Evdokimov in Data Engineers
Daniel Matveev
чем нет
DSL дает
ну, из жабы он просто обычная либа
источник

DM

Daniel Matveev in Data Engineers
Alexey Evdokimov
ну, из жабы он просто обычная либа
вот точно я не планирую искать филосовскую грань между набором методов, дсл и джавой
источник

K

KrivdaTheTriewe in Data Engineers
Renarde
а зачем для этого стронняя либа?
Мы обычно стартуем локальный спарк:

import org.apache.spark.sql.SparkSession
import org.scalatest.{BeforeAndAfterAll, Suite}

trait SparkSupport extends BeforeAndAfterAll {
   self: Suite =>

   var spark: SparkSession = _

   override def beforeAll(): Unit = {
       spark = SparkSession.builder()
           .appName(“test”)
           .master("local[*]")
           .config("spark.sql.shuffle.partitions", "1")
           .getOrCreate()

       super.beforeAll()
   }

   override def afterAll(): Unit = {
       spark.stop()
       super.afterAll()
   }
}
по спарк контексту на сьют
источник

D

Dmitry Tron in Data Engineers
Renarde
а зачем для этого стронняя либа?
Мы обычно стартуем локальный спарк:

import org.apache.spark.sql.SparkSession
import org.scalatest.{BeforeAndAfterAll, Suite}

trait SparkSupport extends BeforeAndAfterAll {
   self: Suite =>

   var spark: SparkSession = _

   override def beforeAll(): Unit = {
       spark = SparkSession.builder()
           .appName(“test”)
           .master("local[*]")
           .config("spark.sql.shuffle.partitions", "1")
           .getOrCreate()

       super.beforeAll()
   }

   override def afterAll(): Unit = {
       spark.stop()
       super.afterAll()
   }
}
там есть ассерты для датафреймов
источник

K

KrivdaTheTriewe in Data Engineers
:D warehouse какой-то один  и паралельно нельзя зайти
источник

AE

Alexey Evdokimov in Data Engineers
бойлерплейта не так и много, в конце концлв на выходе будет какая-то рдд, которой можно сказать .collect(), и дальше сравнивать с эталоном любым удобным способом
источник

R

Renarde in Data Engineers
Alexey Evdokimov
бойлерплейта не так и много, в конце концлв на выходе будет какая-то рдд, которой можно сказать .collect(), и дальше сравнивать с эталоном любым удобным способом
мы как-то так и делаем
источник

D

Dmitry Tron in Data Engineers
не то чтобы нельзя было самим их написать, но как потенциальный ответ на твой вопрос
источник

AE

Alexey Evdokimov in Data Engineers
дык, легко и просто это
источник

AE

Alexey Evdokimov in Data Engineers
костыли-то на кой?
источник

A

Aleksandr in Data Engineers
Alexey Evdokimov
костыли-то на кой?
Под костылями ты что имеешь в виду? Костыли это как раз самому сидеть и писать что-то. А тут как бы очень активный спарк контрибьютор свою либу сделал, почему нет.
источник

D

Dmitry Tron in Data Engineers
короче вечный спор свое против говнолиба с гитхаба
источник