Size: a a a

2021 February 15

А

Алексей in Moscow Spark
Иван Калининский
на csv не сработает maxPartitionBytes, если только он не пожат чем-то типа bzip2 или другого разделяемого кодека
вроде побилось:
scala> spark.conf.set("spark.sql.files.maxPartitionBytes", 1024*1024)
scala> spark.read.format("csv").option("header", "false").option("delimiter", ",").load(file).rdd.getNumPartitions
res7: Int = 14

scala> spark.conf.set("spark.sql.files.maxPartitionBytes", 1024)
scala> spark.read.format("csv").option("header", "false").option("delimiter", ",").load(file).rdd.getNumPartitions
res9: Int = 13698
источник

ЕГ

Евгений Глотов... in Moscow Spark
Евгений Глотов
Где-то на хитхабе валяется гринплам-коннектор, но вообще он под лицензией пивотал, а пивотал купили вмваре и всё закрыли
С сайта пивотал качнуть не получилось
источник

ИК

Иван Калининский... in Moscow Spark
Алексей
вроде побилось:
scala> spark.conf.set("spark.sql.files.maxPartitionBytes", 1024*1024)
scala> spark.read.format("csv").option("header", "false").option("delimiter", ",").load(file).rdd.getNumPartitions
res7: Int = 14

scala> spark.conf.set("spark.sql.files.maxPartitionBytes", 1024)
scala> spark.read.format("csv").option("header", "false").option("delimiter", ",").load(file).rdd.getNumPartitions
res9: Int = 13698
клёво, спасибо
источник

ИК

Иван Калининский... in Moscow Spark
я был уверен, что csv не побить так просто
источник

ИК

Иван Калининский... in Moscow Spark
вот бы ещё количество записей в партициях посмотреть?
источник

А

Алексей in Moscow Spark
Иван Калининский
я был уверен, что csv не побить так просто
сложно, но, видимо, возможно. Вероятно, бьется на части позиционированием в файле, а потом ищутся концы строк
источник

ЕГ

Евгений Глотов... in Moscow Spark
Alexander Dorofeev
Всем привет!
Подскажите, плиз, какой JAR нужно использовать, чтобы коннектиться к GreenPlum через SPARK? Попробовал несколько jar для postgresql 9.4, коннект проходит, но читает только структуру таблицы, данные в spark df не попадают
Попробуй вот это собрать и подкинуть в джарки:
https://github.com/devopsprodigy/spark-greenplum-connector
источник

А

Алексей in Moscow Spark
Иван Калининский
вот бы ещё количество записей в партициях посмотреть?
scala> spark.conf.set("spark.sql.files.maxPartitionBytes", 2*1024*1024)
scala> spark.read.format("csv").option("header", "false").option("delimiter", ",").load(file).mapPartitions(r=>Iterator(r.size)).show()
+-----+
|value|
+-----+
|81047|
|81315|
|81057|
|80898|
|80921|
|80805|
|55602|
+-----+

scala> spark.conf.set("spark.sql.files.maxPartitionBytes", 4*1024*1024)
scala> spark.read.format("csv").option("header", "false").option("delimiter", ",").load(file).mapPartitions(r=>Iterator(r.size)).show()
+------+
| value|
+------+
|162362|
|161955|
|161726|
| 55602|
+------+
источник

ИК

Иван Калининский... in Moscow Spark
Алексей
scala> spark.conf.set("spark.sql.files.maxPartitionBytes", 2*1024*1024)
scala> spark.read.format("csv").option("header", "false").option("delimiter", ",").load(file).mapPartitions(r=>Iterator(r.size)).show()
+-----+
|value|
+-----+
|81047|
|81315|
|81057|
|80898|
|80921|
|80805|
|55602|
+-----+

scala> spark.conf.set("spark.sql.files.maxPartitionBytes", 4*1024*1024)
scala> spark.read.format("csv").option("header", "false").option("delimiter", ",").load(file).mapPartitions(r=>Iterator(r.size)).show()
+------+
| value|
+------+
|162362|
|161955|
|161726|
| 55602|
+------+
Благодарю, убедительно
источник

NN

No Name in Moscow Spark
Ребят, а я вот задумался о чём. Допустим, у меня в hdfs стоит коэффициент репликации 3, и даже все серваки стоят в одном датацентре, но в разных стойках. Конфиги спарк-сессии позволяют поднять несколько экзекуторов на одной ноде. Ну и у меня запускается некая джоба, которая вот колбасит на кластере данные туда-сюда. Вопрос - у спарка под капотом есть какая-то политика, в каких случаях какую реплику данных он возьмёт? Будет ли стараться искать колокейтед, или же, наоборот, постарается выбрать из разных стоек/нод? Или вообще рандом?
источник

А

Алексей in Moscow Spark
No Name
Ребят, а я вот задумался о чём. Допустим, у меня в hdfs стоит коэффициент репликации 3, и даже все серваки стоят в одном датацентре, но в разных стойках. Конфиги спарк-сессии позволяют поднять несколько экзекуторов на одной ноде. Ну и у меня запускается некая джоба, которая вот колбасит на кластере данные туда-сюда. Вопрос - у спарка под капотом есть какая-то политика, в каких случаях какую реплику данных он возьмёт? Будет ли стараться искать колокейтед, или же, наоборот, постарается выбрать из разных стоек/нод? Или вообще рандом?
Выше писали, что смотрит: https://t.me/moscowspark/13830 и пытается запустить таск рядом, и будет запущено в другом месте, если время старта превысило spark.locality.wait
источник

NN

No Name in Moscow Spark
Алексей
Выше писали, что смотрит: https://t.me/moscowspark/13830 и пытается запустить таск рядом, и будет запущено в другом месте, если время старта превысило spark.locality.wait
Почитал, спасибо)
источник

AD

Alexander Dorofeev in Moscow Spark
Спасибо!
источник

M

Mi in Moscow Spark
Может кто-нибудь знает где можно прочитать насколько сложные выражения на колонками-партициями можно делать без потери predicate pushdown?
источник

t

tenKe in Moscow Spark
от коннектора к источнику целиком и полностью зависит
источник

M

Mi in Moscow Spark
read.orc
источник

t

tenKe in Moscow Spark
оно в коннектор влетает как Array[Filter] и дальше уже кто как напишет
источник

NN

No Name in Moscow Spark
Mi
Может кто-нибудь знает где можно прочитать насколько сложные выражения на колонками-партициями можно делать без потери predicate pushdown?
Попробуйте методом тыка через explain, тоже вариант
источник

A

Ali Isfandiyarov in Moscow Spark
Привет! Подскажите пожалуйста, быстрее ли pandas_udf, чем обычная udf в java/scala? Или есть какие-то аналоги, бенчмарки?
источник

t

tenKe in Moscow Spark
Ali Isfandiyarov
Привет! Подскажите пожалуйста, быстрее ли pandas_udf, чем обычная udf в java/scala? Или есть какие-то аналоги, бенчмарки?
Привет, медленнее наоборот
источник