Как использовать аккумуляторы с искрой 2.3.1 api - PullRequest
0 голосов
/ 30 октября 2018

Я использую версию spark-sql_2.11-2.3.1 с Cassandra 3.x. Мне нужно предоставить функцию проверки, которая имеет

   column_family_name text,
    oracle_count bigint,
    cassandra_count bigint,
    create_timestamp timestamp,
    last_update_timestamp timestamp,
    update_user text

Для того же самого я должен подсчитать количество успешно вставленных записей, то есть cassandra_count для заполнения, для этого я хочу использовать искровой аккумулятор. Но, к сожалению, я не могу найти необходимые примеры API с версией spark-sql_2.11-2.3.1.

Ниже мое сохранение в фрагменте Кассандры

 o_model_df.write.format("org.apache.spark.sql.cassandra")
    .options(Map( "table" -> columnFamilyName, "keyspace" -> keyspace ))
    .mode(SaveMode.Append)
    .save()

Здесь показано, как реализовать приращение аккумулятора для каждой строки, успешно сохраняемой в Cassandra ...

Любая помощь будет очень благодарна.

1 Ответ

0 голосов
/ 30 октября 2018

Аккумуляторы Spark обычно используются в преобразованиях, которые вы пишете, не ожидайте, что разъем искры кассандры даст вам что-то вроде.

Но в целом - если ваша работа была завершена без ошибок, то это означает, что данные правильно записаны в базу данных.

Если вы хотите проверить, сколько строк действительно находится в базе данных, то вам нужно подсчитать данные в базе данных - вы можете использовать cassandraCount метод коннектора искровой кассандры. Основная причина этого - в вашем DataFrame может быть несколько строк, которые могут быть отображены в одну строку Cassandra (например, если вы неправильно определили первичный ключ, поэтому его есть в нескольких строках).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...