Size: a a a

2020 September 12

ПБ

Повелитель Бури... in Moscow Spark
Доброе утро! Хочу читать из кафки спарк стрим. Язык скала. Открываю документацию. To write your own Spark Streaming program, you will have to add the following dependency to your SBT or Maven project.  Все облазил. Но нигде не нашел как собрать проект. Подскажите пожалуйстка куда копать? Мавен это хранилище jarов
источник

A

Artem in Moscow Spark
Повелитель Бури
Доброе утро! Хочу читать из кафки спарк стрим. Язык скала. Открываю документацию. To write your own Spark Streaming program, you will have to add the following dependency to your SBT or Maven project.  Все облазил. Но нигде не нашел как собрать проект. Подскажите пожалуйстка куда копать? Мавен это хранилище jarов
Maven/sbt это система сборки проекта, типа make
источник

A

Artem in Moscow Spark
Тебе нужно описать конфигурацию, список зависимостей. После этого запустить сборку проекта через sbt/mvn они уже сделают для тебя jar, который можно будет запустить спарком
источник

ПБ

Повелитель Бури... in Moscow Spark
Artem
Maven/sbt это система сборки проекта, типа make
Вот не стало понятнее ))) у меня есть кучка spark-sql .scala которые я запускаю spark-sabmit. Зачем мне jar?
источник

ПБ

Повелитель Бури... in Moscow Spark
Можно спарк стрим так же завернуть в .scala ? Или я не туда двигаюсь?
источник

A

Artem in Moscow Spark
Повелитель Бури
Вот не стало понятнее ))) у меня есть кучка spark-sql .scala которые я запускаю spark-sabmit. Зачем мне jar?
Spark-sql.scala это исходный код. Скала компилируемый язык, чтоб запустить программу на scala/java сорцы нужно превратить в байт код(jar). Python интерпретируемый язык, в его случае для запуска нужны только сорцы и интерпретатор
источник

A

Artem in Moscow Spark
Повелитель Бури
Можно спарк стрим так же завернуть в .scala ? Или я не туда двигаюсь?
А как сейчас ты ранишь scala файлы
источник

ПБ

Повелитель Бури... in Moscow Spark
Artem
А как сейчас ты ранишь scala файлы
Через apache livy
источник

A

Artem in Moscow Spark
Повелитель Бури
Через apache livy
А, просто сейчас у тя компиляцию и запуск делает ivy, соответственно и зависимости те нужно через него подключить
источник

ПБ

Повелитель Бури... in Moscow Spark
Ок. Допустим я хочу сделать по уму. У меня есть  unix консоль и винда. Мне мне качать всякие  еде nut bean  , pom файлы итд? Собирать в винде  javax   jar и кидать stream jar    в linux?
источник

A

Artem in Moscow Spark
Повелитель Бури
Ок. Допустим я хочу сделать по уму. У меня есть  unix консоль и винда. Мне мне качать всякие  еде nut bean  , pom файлы итд? Собирать в винде  javax   jar и кидать stream jar    в linux?
Те нужно создать (скопировать из любого примера на github) pom.xml (или build.sbt) и запустить сборку. Причём под любой платформой, тк java кросплатформенная
источник

A

Artem in Moscow Spark
источник

A

Artem in Moscow Spark
Дальше ставишь java, sbt
источник

A

Artem in Moscow Spark
Из корня проекта запускаешь sbt package
источник

A

Artem in Moscow Spark
И получаешь jar
источник
2020 September 13

SM

Sergey M in Moscow Spark
Hello guys

Я тут пытаюсь записать dataset в clickhouse
И мне выдаёт такое

Caused by: java.lang.Throwable: Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 64: NOT NULL, "COLUMN_3_NAME" TEXT , "COLUMN_4_NAME" INTEGER NOT NULL, "COLUMN_5_NAME" TEXT , "COLUMN_6_NAME" BYTE NOT NULL, <AND SO ON>. Expected one of: CODEC, ALIAS, TTL, ClosingRoundBracket, Comma, DEFAULT, MATERIALIZED, COMMENT, token (version 20.3.8.53 (official build))


Я даже не понимаю как можно это "отдебажить". Как посмотреть весь query который пытается выполнится?
Как вообще узнать больше информации чем выдаётся в exception?
Где посмотреть весь query где position 64?

В ClickHouse
Первая колонка - uuid
Вторая Int32
Вторая String

Можно было бы предположить что в ds дествительно есть значения в COLUMN_2 где null, но
ds.where($"COLUMN_2_NAME".isNull).count
res35: Long = 0
источник

SM

Sergey M in Moscow Spark
Sergey M
Hello guys

Я тут пытаюсь записать dataset в clickhouse
И мне выдаёт такое

Caused by: java.lang.Throwable: Code: 62, e.displayText() = DB::Exception: Syntax error: failed at position 64: NOT NULL, "COLUMN_3_NAME" TEXT , "COLUMN_4_NAME" INTEGER NOT NULL, "COLUMN_5_NAME" TEXT , "COLUMN_6_NAME" BYTE NOT NULL, <AND SO ON>. Expected one of: CODEC, ALIAS, TTL, ClosingRoundBracket, Comma, DEFAULT, MATERIALIZED, COMMENT, token (version 20.3.8.53 (official build))


Я даже не понимаю как можно это "отдебажить". Как посмотреть весь query который пытается выполнится?
Как вообще узнать больше информации чем выдаётся в exception?
Где посмотреть весь query где position 64?

В ClickHouse
Первая колонка - uuid
Вторая Int32
Вторая String

Можно было бы предположить что в ds дествительно есть значения в COLUMN_2 где null, но
ds.where($"COLUMN_2_NAME".isNull).count
res35: Long = 0
В общем
Посмотрел логи clickhouse
там запускается query CREATE TABLE бла бла бла с колонками как у меня в dataset а не в таблице CH куда я хочу записать
Почему запускается CREATE TABLE а не просто INSERT INTO (я я хочу) я не понимаю

position 64 - это первое упонинание NOT NULL в CREATE TABLE
Т.е. CREATE TABLE column_1, column_2 NOT NULL - и вот тут вылетает exception

Дествительно col_name not null - неверный синтаксис для создания not null колонки в CH, вылетает с той самой exeption: expection one of blah blah blah
(
надо
CREATE TABLE t_null(x Int8, y Nullable(Int8)) ENGINE TinyLog
)

т.о. spark не знает о правильном синтаксисе CH

¿por qué, Guys?

это вообще каким-либо образом возможно обойти?
источник

SM

Sergey M in Moscow Spark
Sergey M
В общем
Посмотрел логи clickhouse
там запускается query CREATE TABLE бла бла бла с колонками как у меня в dataset а не в таблице CH куда я хочу записать
Почему запускается CREATE TABLE а не просто INSERT INTO (я я хочу) я не понимаю

position 64 - это первое упонинание NOT NULL в CREATE TABLE
Т.е. CREATE TABLE column_1, column_2 NOT NULL - и вот тут вылетает exception

Дествительно col_name not null - неверный синтаксис для создания not null колонки в CH, вылетает с той самой exeption: expection one of blah blah blah
(
надо
CREATE TABLE t_null(x Int8, y Nullable(Int8)) ENGINE TinyLog
)

т.о. spark не знает о правильном синтаксисе CH

¿por qué, Guys?

это вообще каким-либо образом возможно обойти?
И даже вот с этой фигнёй

import java.util.Properties
val ckProperties = new Properties()
ckProperties.put("user", "USERNAME")
ckProperties.put("password", "PASSWORD")

val chDriver = new ClickHouseDriver()

ds.write
 .mode("append")
 .option("driver", "ru.yandex.clickhouse.ClickHouseDriver")
 .jdbc(chFullUrl, table = "TABLE_NAME", ckProperties)


тоже самое
источник
2020 September 14

SM

Sergey M in Moscow Spark
Sergey M
И даже вот с этой фигнёй

import java.util.Properties
val ckProperties = new Properties()
ckProperties.put("user", "USERNAME")
ckProperties.put("password", "PASSWORD")

val chDriver = new ClickHouseDriver()

ds.write
 .mode("append")
 .option("driver", "ru.yandex.clickhouse.ClickHouseDriver")
 .jdbc(chFullUrl, table = "TABLE_NAME", ckProperties)


тоже самое
Ну если коротко
Забейте
Придётся писать собственный JdbcUtils.saveToTable
источник

DZ

Dmitry Zuev in Moscow Spark
Sergey M
Ну если коротко
Забейте
Придётся писать собственный JdbcUtils.saveToTable
Лол нет
источник