@marselabdullin

Ошибка при попытке записать dataframe в базу данных из pyspark?

Я получаю json из HDFS, преобразую его и пытаюсь записать df в базу данных.

Ошибка:

at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:238)
at java.lang.Thread.run(Thread.java:748)


Spark version: 2.3.1 PySpark: 2.3.1


Code:

df.write \
    .jdbc("jdbc:clickhouse://adqm2.gu.local:8123", "esia_dev.bill_agg_test",
          properties={"user": "user", "password": "password"})


Code2

df.write \
    .format("jdbc") \
    .mode("append") \
    .option("driver", "ru.yandex.clickhouse.ClickHouseDriver") \
    .option("url", "jdbc:clickhouse://adqm2.gu.local:8123/esia_dev")\
    .option("driver", "ru.yandex.clickhouse.ClickHouseDriver")\
    .option("dbtable", "esia_dev.bill_agg_test")\
    .option("user", "user") \
    .option("password", "password")\
    .save()


*P.S Я получаю ту же самую ошибку при попытке выгрузить csv
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
Тут Spark не имеет никаких преимуществ перед обычным приложением. Скорее всего чтение из json не распараллелится. Такой он вредный json.

Попробуй просто выкачать json через hdfs tools и толкнуть его в кликхаус обычным java или python ротложннием. И jdbc лучше не использовать. Если у кликхауса есть другой API то бери его. Будет быстрее чем jdbc.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы